你如何从命令行打开SourceTree?

有没有一种简单快捷的方法来在命令行中打开SourceTree中的git仓库?

我从terminal做了很多git工作,但是有时候没有一个好的历史视图/差异的替代品。 希望能够打开,而不使用书签。

安装SourceTree命令行工具将为您提供stree命令。 这将允许您打开SourceTree中的当前目录。

sourcetree命令行工具

你也可以指定一个特定的回购path

 stree ~/my-repo-in-another-folder 

如果安装命令行工具不是出于任何原因的选项,您也可以执行以下操作:

 open -a SourceTree path-to-file 

也可以在.bashrc或.zshrc中设置一个别名

 alias sourcetree='open -a SourceTree' 

loeschg的答案可能不起作用; 有些人提到他们的系统日志错误,不能安装命令行工具。 这是一个开放的问题。

解决方法在这里find。 使用:

 ln -s /Applications/SourceTree.app/Contents/Resources/stree /usr/local/bin/ 

这将创build一个到stree二进制文件的符号链接,并将其放在/usr/local/bin 。 确保目录在你的path上: which stree应该导致/usr/local/bin/stree 。 如果没有,那么手动添加它到你的PATH或者使用echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile ,它会为你做(重新启动你的shell来重载PATHvariables)。

在上面提到的问题的页面上,我没有testing另一个解决方法: alias stree='/Applications/SourceTree.app/Contents/Resources/stree' 。 如果你使用它,请在评论中报告它是如何工作的,以及为什么你喜欢它在符号链接上。

对于这两种方法, SourceTree.app中的SourceTree.apppath当然必须与您安装SourceTree.app的位置相匹配。

现在, stree被安装并且可以从任何目录访问。 当你的shell的工作目录是一个存储库的根目录时,打开SourceTree的最简单的方法是stree stree .

对于Windows上的用户,可以将名为stree.bat的batch file添加到PATH环境variables中的文件夹中。 (我有一个C:\batch文件夹,在我的path中存储我的所有实用batch file。)将以下内容添加到您的batch file中:

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

现在你可以去任何一个Git或Mercurial仓库,运行这个命令,这个命令将在SourceTree中打开仓库。

对于在Bash命令行(msys)上使用Git的用户的另一种Windows解决scheme。

将两个函数添加到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 } 

重新加载你的shell。

现在你可以使用:

 $ towinpath /c/Temp 

它会回显c:\Temp

或者你可以打开SourceTree:

 $ stree . 

它将在SourceTree默认状态面板中打开这个存储库。