Як відкрити SourceTree з командного рядка?


82

Чи є швидкий і простий спосіб відкрити сховище git у SourceTree з командного рядка?

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

Відповіді:


110

Встановлення інструментів командного рядка SourceTree надасть вам streeкоманду. Це дозволить вам відкрити поточний каталог у SourceTree.

інструменти командного рядка sourcetree

Ви також можете вказати певний шлях до репо

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'

9
Ви можете змусити псевдонім sourcetree відкрити сховище git, яке знаходиться в поточному робочому каталозі, змінивши його на alias sourcetree='open -a SourceTree ./'. Також користувачі Mac можуть побажати розмістити псевдонім у.bash_profile
Leigh McCulloch

37

Відповідь 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'. Якщо ви ним користуєтесь, повідомте в коментарях, якщо і як це працює, і чому ви віддаєте перевагу над символічним посиланням.

Для обох методів шлях до streein, SourceTree.appзвичайно, повинен відповідати розташуванню, де ви встановили SourceTree.app.

Тепер streeвстановлено і доступ до нього можна отримати з будь-якого каталогу. Найкоротший спосіб відкрити SourceTree, коли робочий каталог вашої оболонки - це кореневий каталог сховища stree ..


Я віддаю перевагу aliasметоду, тому що він відчуває себе менш "постійним" і більш "портативним", ніж створення символічного посилання в каталозі, який вже відносно заповнений і відчуває, що ним керують автоматично - Homebrew любить там посилати речі зі свого льоху. Крім того, нещодавно SourceTree вносив зміни до свого інтерфейсу, які я не ціную, тому я почав тримати кілька його версій, про всяк випадок. Використання псевдонімів дає мені більшу гнучкість щодо того, на яку версію я хотів би орієнтуватися в bash.
Ілля Москвін,

1
Я також отримував цю помилку. Що у мене вийшло: просто оновіть SourceTree до v3.0.1 (Sourcetree -> Перевірити наявність оновлень ...). Після його оновлення встановлення інструментів командного рядка тоді працювало нормально. : D (мій Sourcetree був ще на v2.7.6 , коли я отримав помилку)
Buju

9

Для тих, хто працює у Windows, ви можете додати пакетний файл з іменем stree.batдо папки у вашій змінній середовища PATH. (У мене є C:\batchпапка, яка знаходиться в моєму PATH, де я зберігаю всі мої пакетні файли службових програм.) Введіть у свій командний файл наступне:

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

Тепер ви можете перейти до будь-якого сховища Git або Mercurial і запустити цю команду, яка відкриє сховище в SourceTree.


3
FYI: На моєму дереві джерело даних НЕ інстальовано в Program Files, а в C: \ Users \ <user> \ AppData \ Local \ SourceTree. Можливо тому, що вони зараз використовують інсталятор Squirrel?
Kevin Berridge

5

Ще одне рішення Windows для тих, хто використовує Git у командному рядку Bash (msys).

Додайте дві функції до вашого .profile Bash:

# 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 за замовчуванням на панелі стану.


Чудово, дякую! Існує також функція Cygwin cygpath, де ви можете зробити щось подібне function towinpath { cygpath -w $(cd $1 && pwd); }. Це дозволить більш надійно обробляти такі речі, як шляхи UNC.
eacousineau

2

Якщо у вас встановлений cygwin, ви можете використовувати його як свій 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%"

-1

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 &

Ви можете замінити "журнал" в останньому рядку на "статус", якщо віддаєте перевагу поданню змін / робочого каталогу вашого сховища в SourceTree.

Командний рядок або Powershell

Створіть файл, названий stree.cmdу вашому зв’язаному з PATH каталозі.

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

Зверніть увагу, що це насправді не відкриє каталог як сховище.

Будь ласка, не соромтеся вдосконалювати сценарії, особливо для командного рядка.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.