web-dev-qa-db-ja.com

SourceTreeをコマンドラインからどのように開きますか?

コマンドラインからSourceTreeでgitリポジトリをすばやく簡単に開く方法はありますか?

私はターミナルから多くのgit作業を行っていますが、良い履歴ビュー/差分に代わるものがない場合があります。ブックマークを使用せずに開くことができると思います。

65
loeschg

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'
93
loeschg

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'。それを使用する場合、シンボリックリンクよりも機能するかどうか、およびその方法と理由をコメントで報告してください。

どちらの方法でも、SourceTree.appstreeへのパスは、もちろんSourceTree.appをインストールした場所と一致する必要があります。

これで、streeがインストールされ、任意のディレクトリからアクセスできます。シェルの作業ディレクトリがリポジトリのルートディレクトリである場合にSourceTreeを開く最短の方法はstree .です。

34
Erik

Windowsをお使いの場合は、stree.batという名前のバッチファイルをPATH環境変数のフォルダーに追加できます。 (私はすべてのユーティリティバッチファイルを保存するPATHにあるC:\batchフォルダーを持っています。)バッチファイルに以下を入力します。

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

これで、任意のGitまたはMercurialリポジトリに移動し、SourceTreeでリポジトリを開くこのコマンドを実行できます。

9
Sumner Evans

Bashコマンドライン(msys)でGitを使用するユーザー向けの別のWindowsソリューション。

Bash .profileに2つの関数を追加します。

# 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
Greg Burghardt

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
Yan Sern

ここでの複数の回答からWindowsに適応するこれらのスクリプトを使用すると、コマンドラインからSourceTreeを実行できます(SourceTree 3.0.1.7/Windows 10でテスト済み)。

PATHディレクトリ内のスクリプト

これらのスクリプトは両方とも、システムPATHにあるフォルダーに配置しました。このスクリプトのbashプロファイルを変更する必要はありません。

Git Bash for Windows

PATHリンクディレクトリにstreetouch stree)という名前のファイルを作成し、このファイルで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

PATHリンクディレクトリにstree.cmdという名前のファイルを作成します。

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

これは実際にはディレクトリをリポジトリとして開かないことに注意してください。

スクリプト、特にコマンドプロンプト用のスクリプトを自由に改善してください。

0