コマンドラインからSourceTreeでgitリポジトリをすばやく簡単に開く方法はありますか?
私はターミナルから多くのgit作業を行っていますが、良い履歴ビュー/差分に代わるものがない場合があります。ブックマークを使用せずに開くことができると思います。
SourceTreeコマンドラインツールをインストールすると、stree
コマンドが提供されます。これにより、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'
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.app
のstree
へのパスは、もちろんSourceTree.app
をインストールした場所と一致する必要があります。
これで、stree
がインストールされ、任意のディレクトリからアクセスできます。シェルの作業ディレクトリがリポジトリのルートディレクトリである場合にSourceTreeを開く最短の方法はstree .
です。
Windowsをお使いの場合は、stree.bat
という名前のバッチファイルをPATH環境変数のフォルダーに追加できます。 (私はすべてのユーティリティバッチファイルを保存するPATHにあるC:\batch
フォルダーを持っています。)バッチファイルに以下を入力します。
@echo off
start "" "C:\Program Files (x86)\Atlassian\SourceTree\SourceTree.exe"
これで、任意のGitまたはMercurialリポジトリに移動し、SourceTreeでリポジトリを開くこのコマンドを実行できます。
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でこのリポジトリを開き、デフォルトで[ステータス]パネルを開きます。
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%"
ここでの複数の回答からWindowsに適応するこれらのスクリプトを使用すると、コマンドラインからSourceTreeを実行できます(SourceTree 3.0.1.7/Windows 10でテスト済み)。
これらのスクリプトは両方とも、システムPATHにあるフォルダーに配置しました。このスクリプトのbashプロファイルを変更する必要はありません。
PATHリンクディレクトリにstree
(touch 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のリポジトリの変更/作業ディレクトリビューを使用する場合は、最後の行の「ログ」を「ステータス」に置き換えることができます。
PATHリンクディレクトリにstree.cmd
という名前のファイルを作成します。
@echo off
start "" "%LOCALAPPDATA%\SourceTree\SourceTree.exe"
これは実際にはディレクトリをリポジトリとして開かないことに注意してください。
スクリプト、特にコマンドプロンプト用のスクリプトを自由に改善してください。