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


82

コマンドラインからSourceTreeでgitリポジトリを開くための迅速で簡単な方法はありますか?

私はターミナルから多くの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'

SourceTree3を使用している人向け

alias sourcetree='open -a SourceTree\ 3'

9
ソースツリーエイリアスをに変更することで、現在の作業ディレクトリにあるgitリポジトリを開くことができますalias sourcetree='open -a SourceTree ./'。また、Macユーザーはエイリアスを.bash_profile
Leigh McCulloch 2014

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は最近UIに変更を加えていますが、私は気に入らないので、念のために複数のバージョンを保持し始めました。エイリアスを使用すると、bashでターゲットにするバージョンをより柔軟に設定できます。
Illya Moskvin 2018

1
私もこのエラーが発生していました。私にとってうまくいったこと:SourceTreeをv3.0.1に更新するだけです(Sourcetree-> Check for Updates ...)。更新後、コマンドラインツールのインストールは正常に機能していました。:D(私はエラーを得たとき、私のSourcetreeがv2.7.6に残っていた)
Buju

9

Windowsを使用している場合はstree.bat、PATH環境変数のフォルダーに名前を付けたバッチファイルを追加できます。(C:\batchPATHに、すべてのユーティリティバッチファイルを保存するフォルダーがあります。)バッチファイルに次のファイルを入力します。

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

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


3
参考:私のマシンでは、ソースツリーはProgram Filesにインストールされておらず、C:\ Users \ <user> \ AppData \ Local \ SourceTreeにあります。おそらく彼らは今Squirrelインストーラーを使用しているからですか?
ケビンベリッジ2018年

5

Bashコマンドライン(msys)でGitを使用するユーザー向けのもう1つの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関数もあります。cygpathここで、に似た何かを行うことができますfunction towinpath { cygpath -w $(cd $1 && pwd); }。これにより、UNCパスなどをより堅牢に処理できます。
eacousineau 2016年

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

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

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

Windows用のGitBash

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のリポジトリの変更/作業ディレクトリビューを希望する場合は、最後の行の「log」を「status」に置き換えることができます。

コマンドプロンプトまたはPowershell

stree.cmdPATHリンクディレクトリに名前の付いたファイルを作成します。

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.