Подтвердить что ты не робот

Как открыть SourceTree из командной строки?

Есть ли быстрый и простой способ открыть репозиторий git в SourceTree из командной строки?

Я выполняю много работы git из терминала, но иногда нет замены для хорошего просмотра истории /diff. Хотелось бы иметь возможность открываться без использования закладок.

4b9b3361

Ответ 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 начните ее использовать.