Как открыть SourceTree из командной строки?
Есть ли быстрый и простой способ открыть репозиторий git в SourceTree из командной строки?
Я выполняю много работы git из терминала, но иногда нет замены для хорошего просмотра истории /diff. Хотелось бы иметь возможность открываться без использования закладок.
Ответы
Ответ 1
Установка инструментов командной строки SourceTree предоставит вам команду stree
. Это позволит вам открыть текущий каталог в SourceTree.
![sourcetree commandline tools]()
Вы также можете указать конкретный путь к репо
stree ~/my-repo-in-another-folder
Если по какой-либо причине установка инструментов командной строки невозможна, вы также можете сделать следующее:
open -a SourceTree path-to-file
и, возможно, установить псевдоним в .bashrc или .zshrc
alias sourcetree='open -a SourceTree'
Для тех, кто использует SourceTree 3
alias sourcetree='open -a SourceTree\ 3'
Ответ 2
Ответ loeschg может не сработать; некоторые люди получают ошибку, ссылаясь на свои системные журналы и не могут установить инструменты командной строки. Существует открытая проблема.
Обходной путь можно найти здесь. Использование:
ln -s /Applications/SourceTree.app/Contents/Resources/stree /usr/local/bin/
Это создаст символическую ссылку на двоичный код stree
и поместит его в /usr/local/bin
. Убедитесь, что каталог находится на вашем пути: which stree
должен привести к /usr/local/bin/stree
. Если это не так, добавьте его в свой PATH
вручную или используйте echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile
, который сделает это за вас (перезапустите оболочку, чтобы перезагрузить переменную PATH
).
На вышеупомянутой странице проблемы было опубликовано другое обходное решение, которое я не тестировал: alias stree='/Applications/SourceTree.app/Contents/Resources/stree'
. Если вы его используете, сообщите в комментариях, если и как это работает, и почему вы предпочтете его по символической ссылке.
Для обоих методов путь к stree
в SourceTree.app
должен, конечно, соответствовать местоположению, в котором вы установили SourceTree.app
.
Теперь stree
установлен и доступен из любой директории. Самый короткий способ открыть SourceTree, когда ваш рабочий каталог оболочки является корневым каталогом репозитория, stree .
.
Ответ 3
Для тех из вас, кто находится в Windows, вы можете добавить командный файл с именем stree.bat
в папку в переменной PATH Environment Variable. (У меня есть папка C:\batch
, которая находится в моем PATH, где я храню все мои служебные пакетные файлы.) Добавьте в свой пакетный файл следующее:
@echo off
start "" "C:\Program Files (x86)\Atlassian\SourceTree\SourceTree.exe"
Теперь вы можете перейти в любой репозиторий Git или Mercurial и запустить эту команду, которая откроет репозиторий в SourceTree.
Ответ 4
Другое решение для Windows для тех, кто использует Git в командной строке Bash (msys).
Добавьте две функции в свой 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
}
Перезагрузите свою оболочку.
Теперь вы можете использовать:
$ towinpath /c/Temp
И он будет эхом c:\Temp
.
Или вы можете открыть SourceTree:
$ stree .
И он откроет этот репозиторий в SourceTree по умолчанию на панели состояния.
Ответ 5
Если у вас установлен stree.bat
, вы можете использовать его в качестве stree.bat
. Этот пакетный файл использует cygpath
для разрешения .
на его абсолютный путь, так что вы можете сделать 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%"
Ответ 6
Windows
Адаптируясь из нескольких ответов здесь для Windows, эти сценарии позволят вам запустить SourceTree из командной строки (протестировано на SourceTree 3.0.1.7/Windows 10).
Скрипты в каталоге PATH
Я поместил оба этих скрипта в папку, которая находится в моей системной переменной PATH. Вам не нужно будет изменять свой профиль bash для этого скрипта.
Git Bash для Windows
Создайте файл с именем stree
(touch stree
) в вашем связанном каталоге PATH и запустите для этого файла chmod u+x stree
.
#!/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 &
Вы можете заменить "log" в последней строке на "status", если вы предпочитаете представление изменений/рабочего каталога вашего репозитория в SourceTree.
Командная строка или Powershell
Создайте файл с именем stree.cmd
в вашем каталоге PATH.
@echo off
start "" "%LOCALAPPDATA%\SourceTree\SourceTree.exe"
Обратите внимание, что это на самом деле не откроет каталог в качестве хранилища.
Пожалуйста, не стесняйтесь улучшать сценарии, особенно те, что для командной строки.
Ответ 7
Загрузите двоичный файл 'tree' снизу: http://gnuwin32.sourceforge.net/packages/tree.htm Поместите в любую папку, в которой в переменной окружения $ PATH начните ее использовать.