强大的Git客户端:SourceTree插件开发指南

了解更多,请关注我的微信公众号:mellong

SourceTree是什么?

简单来说SourceTree是一款免费git图形化操作软件,功能很全,使用起来非常方便,相信不少开发者已经在使用这款软件。

具体还是来看看网上的介绍:

SourceTree是Windows 和Mac OS X 下免费的Git 和Hg 客户端,拥有可视化界面,容易上手操作。 同时它也是Mercurial和Subversion版本控制系统工具。 支持创建、提交、clone、push、pull 和merge等操作。

简单说一下我的感受,一开始使用git的时候,基本上都是直接敲命令的,(没有好的软件,只能自我安慰使用命令行对学习git更有利,苦逼的程序猿),也不知道有什么GUI软件比较好用,直到后来知道了SourceTree,使用上一段时间就彻底离不开它了,功能强大,界面漂亮,用起来顺手,跨平台,还持续更新,最重要的是免费,你没看错,是免费(重要事情说两遍就可以了),有中文版本(虽然我不喜欢用中文版,目前还是用的英文版,原因是中文版看不出来对应的git命令是什么,个人建议大家也用英文版)。

郑重声明一下,这篇文章不是软文。(如果SourceTree的作者看到这篇文章觉得不错的话…,可以和我联系,我这里可以接收美金,怎么联系到我?可以点击查看我的个人信息,微信,主页,邮箱都可以,好吧,我承认我想多了)。

今天所说的插件开发,实际上是SourceTree一个叫Custom Action的功能,SourceTree从v1.3开始就增加了这个功能,这个功能可以让我们可以添加自定义的扩展动作,也就是我们经常说的插件,下面就用实际例子来让大家看看在实际中可以做些什么。

开始动手

加入Open In Sublime Text 2功能

举第一个栗子,我们可以使用Sublime Text 2打开当前选中的文件。

以下下步骤以英文版为准,中文版的请自行翻译…

Custom Actions 页面点击Add添加一个名为 Open In Sublime Text 2 的动作,右边的编辑框可以添加快捷键,接着拷贝下面代码到 Script to run 编辑框中

/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl

Parameters添加 $FILE, 最后点击OK保存。
添加好的界面是这样子的:

SourceTree

至此,我们已经成功实现了这个功能。使用的时候只要选中要打开的文件,点击右键 Custom Actions > Open In Sublime Text 2 即可。

SourceTree

加入Open Workspace和Open Xcodeproj功能

接下来,我们再来做一个稍微复杂点的栗子。

每次打开SourceTree的仓库列表或者进入仓库的时候,如果我们要打开这个仓库的项目文件,还得先去到这个项目的文件夹找到后再打开,如果有一个功能可以直接点击一个按钮就可以自动找到并打开这个仓库里面所有的xcworkspace或者xcodeproj文件就好了,值得庆幸的事,我们可以做到这样的插件,具体做法如下post.toc:

  1. 新建一个自定义动作分别填入下面内容
  • 打开xcworkspace文件
字段名 内容
Menu Caption Open Workspace
Script to run /bin/bash
Parameters /Users/.../open_xcode_project.sh $REPO xcworkspace
  1. 再新建建一个自定义动作分别填入下面内容
  • 打开xcodeproj文件
字段名 内容
Menu Caption Open Xcodeproj
Script to run /bin/bash
Parameters /Users/.../open_xcode_project.sh $REPO xcodeproj
  1. 新建一个名为open_xcode_project.sh文件,路径和上面的路径一致:/Users/.../open_xcode_project.sh,路径是你自己定的,不要和我一样也加...,内容如下:
#仓库路径
REPO_PATH=$1
#文件的类型
OPEN_TYPE=$2

#判断打开项目文件的类型,根据类型筛选出项目文件路径
if [ $OPEN_TYPE = "xcodeproj" ]; then
    LIST=`find $REPO_PATH -name "*.xcodeproj" | grep -v "Pods.xcodeproj"`
else
    LIST=`find $REPO_PATH -name "*.xcworkspace" | grep -v ".xcodeproj/project.xcworkspace"`
fi

for ITEM in $LIST
do
#打开项目文件
open $ITEM

done

上面用到的 open_xcode_project.sh 文件我已经上传到github,传送门:SourceTree Custom Action

完成上面这几步后,在仓库右键就可以看到新添加的两个功能,如下图,点击对应的功能程序就会自动打开该仓库下的项目文件,不得不说太方便了!满满的成就感有没有!

SourceTree

不难看出,这个插件主要是通过shell脚本来完成,把仓库的路径和打开文件的类型传给脚本来进行处理,脚本过滤出目标的文件路径并依此使用默认的软件(也就是Xcode)来打开项目文件。

最后

这篇文章只是抛砖引玉,你可以做到更多更棒的功能,只要你对shell命令足够熟悉,当然,想法最重要,如果有好的想法欢迎你共享出来,只有分享才能相互进步。

另外,我建了一个SourceTree的Custom Action github仓库:SourceTree Custom Action,希望有志之士(说的就是你)一起来维护,来给我pull request吧。希望看到不久的将来我的SourceTree的Custom Action菜单满满的都是各种各样的功能。

最后抱怨一下,简书 首页投稿 的小编,那谁,在这里我就不点名了,连续拒了我好几篇文章了,唉,终于体会到汪峰当年无法上头条的痛苦了。喊一句“我要上首页”不知道有没有用呢,算了,一切随缘吧...

The End.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容