了解更多,請關(guān)注我的微信公眾號(hào):mellong
SourceTree是什么?
簡單來說SourceTree是一款免費(fèi)git圖形化操作軟件,功能很全,使用起來非常方便,相信不少開發(fā)者已經(jīng)在使用這款軟件。
具體還是來看看網(wǎng)上的介紹:
SourceTree是Windows 和Mac OS X 下免費(fèi)的Git 和Hg 客戶端,擁有可視化界面,容易上手操作。 同時(shí)它也是Mercurial和Subversion版本控制系統(tǒng)工具。 支持創(chuàng)建、提交、clone、push、pull 和merge等操作。
簡單說一下我的感受,一開始使用git的時(shí)候,基本上都是直接敲命令的,(沒有好的軟件,只能自我安慰使用命令行對學(xué)習(xí)git更有利,苦逼的程序猿),也不知道有什么GUI軟件比較好用,直到后來知道了SourceTree,使用上一段時(shí)間就徹底離不開它了,功能強(qiáng)大,界面漂亮,用起來順手,跨平臺(tái),還持續(xù)更新,最重要的是免費(fèi),你沒看錯(cuò),是免費(fèi)(重要事情說兩遍就可以了),有中文版本(雖然我不喜歡用中文版,目前還是用的英文版,原因是中文版看不出來對應(yīng)的git命令是什么,個(gè)人建議大家也用英文版)。
鄭重聲明一下,這篇文章不是軟文。(如果SourceTree的作者看到這篇文章覺得不錯(cuò)的話…,可以和我聯(lián)系,我這里可以接收美金,怎么聯(lián)系到我?可以點(diǎn)擊查看我的個(gè)人信息,微信,主頁,郵箱都可以,好吧,我承認(rèn)我想多了)。
今天所說的插件開發(fā),實(shí)際上是SourceTree一個(gè)叫Custom Action的功能,SourceTree從v1.3開始就增加了這個(gè)功能,這個(gè)功能可以讓我們可以添加自定義的擴(kuò)展動(dòng)作,也就是我們經(jīng)常說的插件,下面就用實(shí)際例子來讓大家看看在實(shí)際中可以做些什么。
開始動(dòng)手
加入Open In Sublime Text 2功能
舉第一個(gè)栗子,我們可以使用Sublime Text 2打開當(dāng)前選中的文件。
以下下步驟以英文版為準(zhǔn),中文版的請自行翻譯…
Custom Actions 頁面點(diǎn)擊Add添加一個(gè)名為 Open In Sublime Text 2 的動(dòng)作,右邊的編輯框可以添加快捷鍵,接著拷貝下面代碼到 Script to run 編輯框中
/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl
Parameters添加 $FILE, 最后點(diǎn)擊OK保存。
添加好的界面是這樣子的:

至此,我們已經(jīng)成功實(shí)現(xiàn)了這個(gè)功能。使用的時(shí)候只要選中要打開的文件,點(diǎn)擊右鍵 Custom Actions > Open In Sublime Text 2 即可。

加入Open Workspace和Open Xcodeproj功能
接下來,我們再來做一個(gè)稍微復(fù)雜點(diǎn)的栗子。
每次打開SourceTree的倉庫列表或者進(jìn)入倉庫的時(shí)候,如果我們要打開這個(gè)倉庫的項(xiàng)目文件,還得先去到這個(gè)項(xiàng)目的文件夾找到后再打開,如果有一個(gè)功能可以直接點(diǎn)擊一個(gè)按鈕就可以自動(dòng)找到并打開這個(gè)倉庫里面所有的xcworkspace或者xcodeproj文件就好了,值得慶幸的事,我們可以做到這樣的插件,具體做法如下post.toc:
- 新建一個(gè)自定義動(dòng)作分別填入下面內(nèi)容
- 打開xcworkspace文件
| 字段名 | 內(nèi)容 |
|---|---|
| Menu Caption | Open Workspace |
| Script to run | /bin/bash |
| Parameters | /Users/.../open_xcode_project.sh $REPO xcworkspace |
- 再新建建一個(gè)自定義動(dòng)作分別填入下面內(nèi)容
- 打開xcodeproj文件
| 字段名 | 內(nèi)容 |
|---|---|
| Menu Caption | Open Xcodeproj |
| Script to run | /bin/bash |
| Parameters | /Users/.../open_xcode_project.sh $REPO xcodeproj |
- 新建一個(gè)名為
open_xcode_project.sh文件,路徑和上面的路徑一致:/Users/.../open_xcode_project.sh,路徑是你自己定的,不要和我一樣也加...,內(nèi)容如下:
#倉庫路徑
REPO_PATH=$1
#文件的類型
OPEN_TYPE=$2
#判斷打開項(xiàng)目文件的類型,根據(jù)類型篩選出項(xiàng)目文件路徑
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
#打開項(xiàng)目文件
open $ITEM
done
上面用到的 open_xcode_project.sh 文件我已經(jīng)上傳到github,傳送門:SourceTree Custom Action
完成上面這幾步后,在倉庫右鍵就可以看到新添加的兩個(gè)功能,如下圖,點(diǎn)擊對應(yīng)的功能程序就會(huì)自動(dòng)打開該倉庫下的項(xiàng)目文件,不得不說太方便了!滿滿的成就感有沒有!

不難看出,這個(gè)插件主要是通過shell腳本來完成,把倉庫的路徑和打開文件的類型傳給腳本來進(jìn)行處理,腳本過濾出目標(biāo)的文件路徑并依此使用默認(rèn)的軟件(也就是Xcode)來打開項(xiàng)目文件。
最后
這篇文章只是拋磚引玉,你可以做到更多更棒的功能,只要你對shell命令足夠熟悉,當(dāng)然,想法最重要,如果有好的想法歡迎你共享出來,只有分享才能相互進(jìn)步。
另外,我建了一個(gè)SourceTree的Custom Action github倉庫:SourceTree Custom Action,希望有志之士(說的就是你)一起來維護(hù),來給我pull request吧。希望看到不久的將來我的SourceTree的Custom Action菜單滿滿的都是各種各樣的功能。
最后抱怨一下,簡書 首頁投稿 的小編,那誰,在這里我就不點(diǎn)名了,連續(xù)拒了我好幾篇文章了,唉,終于體會(huì)到汪峰當(dāng)年無法上頭條的痛苦了。喊一句“我要上首頁”不知道有沒有用呢,算了,一切隨緣吧...
The End.