Jak otworzyć SourceTree z wiersza poleceń?


82

Czy istnieje szybki i łatwy sposób na otwarcie repozytorium git w SourceTree z wiersza poleceń?

Wykonuję dużo pracy z gitem w Terminalu, ale czasami nie ma zamiennika dla dobrego widoku / porównania historii. Chciałbym móc otwierać bez użycia zakładek.

Odpowiedzi:


110

Zainstalowanie narzędzi wiersza poleceń SourceTree zapewni ci streepolecenie. Umożliwi to otwarcie bieżącego katalogu w SourceTree.

sourcetree narzędzia wiersza poleceń

Możesz także określić konkretną ścieżkę do repozytorium

stree ~/my-repo-in-another-folder

Jeśli z jakiegoś powodu nie można zainstalować narzędzi wiersza polecenia, możesz również wykonać następujące czynności:

open -a SourceTree path-to-file

i może skonfiguruj alias w .bashrc lub .zshrc

alias sourcetree='open -a SourceTree'

Dla tych, którzy używają SourceTree 3

alias sourcetree='open -a SourceTree\ 3'

9
Możesz sprawić, by alias drzewa źródłowego otwierał repozytorium git znajdujące się w bieżącym katalogu roboczym, zmieniając je na alias sourcetree='open -a SourceTree ./'. Również użytkownicy komputerów Mac mogą chcieć umieścić alias w.bash_profile
Leigh McCulloch

37

Odpowiedź loeschga może nie działać; niektórzy ludzie otrzymują błąd odnoszący się do ich dzienników systemowych i nie mogą zainstalować narzędzi wiersza poleceń. Jest to otwarta kwestia.

Tutaj można znaleźć obejście. Posługiwać się:

ln -s /Applications/SourceTree.app/Contents/Resources/stree /usr/local/bin/

Spowoduje to utworzenie dowiązania symbolicznego do pliku streebinarnego i wstawienie go /usr/local/bin. Upewnij się, że katalog znajduje się na twojej ścieżce: which streepowinien skutkować /usr/local/bin/stree. Jeśli tak się nie stanie, dodaj go PATHręcznie lub użyj echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile, co zrobi to za Ciebie (zrestartuj powłokę, aby ponownie załadować PATHzmienną).

Na stronie wyżej wymienionych zagadnień, w innym obejście, że nie testowałem została wysłana: alias stree='/Applications/SourceTree.app/Contents/Resources/stree'. Jeśli go używasz, zgłoś w komentarzach, czy i jak to działa i dlaczego wolisz, aby było to zamiast łącza symbolicznego.

W przypadku obu metod ścieżka do streein SourceTree.appmusi oczywiście odpowiadać lokalizacji, w której zainstalowano SourceTree.app.

Teraz streejest zainstalowany i można uzyskać do niego dostęp z dowolnego katalogu. Najkrótszym sposobem otwarcia SourceTree, gdy katalog roboczy powłoki jest katalogiem głównym repozytorium, jest stree ..


Wolę tę aliasmetodę, ponieważ wydaje mi się, że jest ona mniej „trwała” i bardziej „przenośna” niż tworzenie dowiązania symbolicznego w katalogu, który jest już stosunkowo pełny i wydaje mi się, że jest zarządzany automatycznie - Homebrew lubi tworzyć dowiązania symboliczne ze swojej piwnicy. Ponadto SourceTree wprowadził ostatnio zmiany w swoim interfejsie użytkownika, których nie doceniam, więc zacząłem przechowywać wiele wersji tego oprogramowania, na wszelki wypadek. Używanie aliasów daje mi większą elastyczność co do wersji, na którą chcę kierować reklamy w bashu.
Illya Moskvin

1
Otrzymałem również ten błąd. Co mi zadziałało: po prostu zaktualizuj SourceTree do wersji 3.0.1 (Sourcetree -> Sprawdź aktualizacje ...). Po zaktualizowaniu Instalowanie narzędzi wiersza poleceń działało poprawnie. : D (moje Sourcetree było nadal w wersji 2.7.6, kiedy pojawił się błąd)
Buju

9

Użytkownicy systemu Windows mogą dodać plik wsadowy o nazwie stree.batdo folderu w zmiennej środowiskowej PATH. (Mam C:\batchfolder, który jest w mojej ŚCIEŻCE, w którym przechowuję wszystkie moje pliki wsadowe narzędzi). Umieść następujące dane w pliku wsadowym:

@echo off
start "" "C:\Program Files (x86)\Atlassian\SourceTree\SourceTree.exe"

Teraz możesz przejść do dowolnego repozytorium Git lub Mercurial i uruchomić to polecenie, które otworzy repozytorium w SourceTree.


3
Do Twojej wiadomości: na moim komputerze źródłowym drzewo NIE jest zainstalowane w Program Files, znajduje się w C: \ Users \ <user> \ AppData \ Local \ SourceTree. Prawdopodobnie dlatego, że używają teraz instalatora Squirrel?
Kevin Berridge,

5

Kolejne rozwiązanie Windows dla tych, którzy używają Gita w linii poleceń Bash (msys).

Dodaj dwie funkcje do swojego Bash .profile:

# Courtesy: http://stackoverflow.com/questions/12015348/msys-path-conversion-or-cygpath-for-msys
function towinpath {
    { cd $1 && pwd -W; } | sed 's|/|\\|g'
}

function stree {
    if [ -z $1 ]; then
        stree_path=$(towinpath pwd)
    else
        stree_path=$(towinpath $1)
    fi

    echo "Starting SourceTree in $stree_path"

    /c/Program\ Files\ \(x86\)/Atlassian/SourceTree/SourceTree.exe -f $stree_path status
}

Załaduj ponownie swoją muszlę.

Teraz możesz użyć:

$ towinpath /c/Temp

I odbije się echem c:\Temp.

Lub możesz otworzyć SourceTree:

$ stree .

I otworzy to repozytorium w SourceTree domyślnie na panelu Status.


Wielkie dzieki! Jest też funkcja Cygwin cygpath, w której możesz zrobić coś podobnego function towinpath { cygpath -w $(cd $1 && pwd); }. Pozwoli to lepiej obsługiwać takie rzeczy, jak ścieżki UNC.
eacousineau

2

Jeśli masz zainstalowanego cygwin, możesz użyć tego jako swojego stree.bat. Ten plik wsadowy używa cygpathdo rozwiązywania .do jego ścieżki bezwzględnej, więc możesz to zrobićstree .

@echo off
FOR /F "tokens=* USEBACKQ" %%F IN (`cygpath -w -a %1`) DO (
SET STREE_OPEN_PATH=%%F
)
%USERPROFILE%\AppData\Local\SourceTree\SourceTree.exe -f "%STREE_OPEN_PATH%"

-1

Windows

Dostosowując się z wielu odpowiedzi tutaj dla Windows, te skrypty pozwolą ci uruchomić SourceTree z wiersza poleceń (testowane na SourceTree 3.0.1.7 / Windows 10).

Skrypty w katalogu PATH

Umieściłem oba te skrypty w folderze, który jest w moim systemie PATH. Nie będziesz musiał modyfikować swojego profilu bash dla tego skryptu.

Git Bash dla Windows

Utwórz plik o nazwie stree( touch stree) w połączonym katalogu PATH i uruchom chmod u+x streena tym pliku.

#!/bin/sh

function towinpath {
    { cd $1 && pwd -W; } | sed 's|/|\\|g'
}

if [ -z $1 ]; then
    stree_path=$(towinpath pwd)
else
    stree_path=$(towinpath $1)
fi

$LOCALAPPDATA/SourceTree/SourceTree.exe -f $stree_path log &

Możesz zamienić „log” w ostatniej linii na „status”, jeśli wolisz widok zmian / katalogu roboczego repozytorium w SourceTree.

Wiersz polecenia lub Powershell

Utwórz plik o nazwie stree.cmdw połączonym katalogu PATH.

@echo off
start "" "%LOCALAPPDATA%\SourceTree\SourceTree.exe"

Zauważ, że to faktycznie nie otworzy katalogu jako repozytorium.

Zachęcamy do ulepszania skryptów, zwłaszcza dla wiersza polecenia.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.