
【基本介紹】
SourceTree是一款來自國(guó)外的Git/Mercurial桌面客戶端,在軟件中支持windows與MAC兩個(gè)操作系統(tǒng)版本。SourceTree中文版的美觀界面更是其他類型的軟件所無法媲美的,軟件簡(jiǎn)化了用戶與與Git和Hg庫的交互方式,使得用戶通過客戶端即可管理本地和遠(yuǎn)程的代碼倉庫,十分實(shí)用和方便。【軟件特點(diǎn)】
完全支持DVCSSourceTree簡(jiǎn)化了你與Git和Hg庫的交互方式,可以通過直觀、簡(jiǎn)潔、干凈、友好的客戶端管理本地的和遠(yuǎn)程的代碼倉庫。

新手的完美選擇
簡(jiǎn)化團(tuán)隊(duì)的DVCS操作,可以執(zhí)行提交、推送、獲取、合并分支等操作,按照書簽的方式管理代碼庫,并提供日志視圖。

對(duì)老手也足夠強(qiáng)大
為高級(jí)開發(fā)人員帶來更大的便利,你可以根據(jù)變更集和cherry-pick進(jìn)行評(píng)審。

開箱即用的Git和Hg流程
方便的使用Git流和Hg流。保持代碼庫的整潔,使開發(fā)過程變得更有效率。

【軟件功能】
通過一個(gè)簡(jiǎn)單的用戶界面即可使用所有的Git命令通過一次單擊,即可管理所有的Git庫,無論是托管的還是本地的
通過一次單擊,即可進(jìn)行commit、push、pull、merge等操作
一些先進(jìn)的功能,如補(bǔ)丁處理、rebase、shelve、cherry picking等
可以連接到你托管在Bitbucket、Stash、Microsoft TFS或GitHub中的代碼庫
【安裝教程】
1、在本站下載軟件。2、安裝SourceTree
安裝首界面

點(diǎn)擊,Next

點(diǎn)擊“install”,安裝完成后,打開sourcetree,點(diǎn)擊“user an existing account”,如圖

注意:1使用谷歌帳號(hào)登錄即可,前提是你必須可以上谷歌才可以。
GOOGLE帳號(hào)登錄完成之后,如圖:

此處無需設(shè)置,直接點(diǎn)擊“跳過初始設(shè)置”即可。
登錄注冊(cè)成功后,彈出設(shè)置puttykey的界面,點(diǎn)擊“取消”即可。

點(diǎn)擊“取消”按鈕,彈出如下提示框:

此時(shí)進(jìn)入到sourcetree的主界面,現(xiàn)在就可以使用sourcetree啦。
【使用教程】
(1)克隆點(diǎn)擊克隆按鈕,克隆項(xiàng)目:
既可以是本地已有的git項(xiàng)目,也可以是遠(yuǎn)程目錄中的項(xiàng)目,

本地存在的git項(xiàng)目,
獲取項(xiàng)目克隆地址,點(diǎn)擊克隆按鈕,如圖所示:

1、克隆項(xiàng)目的路徑
2、克隆項(xiàng)目存放的位置
3、如果要下載特定的分支,可以按分支進(jìn)行下載
(2)配置忽略文件
利用.gitignore過濾文件,如編譯過程中的中間文件,等等,這些文件不需要被追蹤管理。
.gitignore文件只對(duì)還沒有加入版本管理的文件起作用,如果之前已經(jīng)用git把這些文件納入了版本庫,就不起作用了
使用sourcetree添加忽略文件的方法:
正常情況下,管理員創(chuàng)建項(xiàng)目后需要直接將忽略文件創(chuàng)建好。創(chuàng)建方法如圖:

按照如上步驟操作即可編輯沖突文件。
沖突文件規(guī)則:
忽略文件夾(如:bin、obj):
obj/
bin/
某目錄下的所有.txt文件,
obj/*.txt
開發(fā)的過程中可能遇到一些忽略文件中未添加的文件,此時(shí)需要開發(fā)者自行添加忽略文件,添加方法如下:
之前已經(jīng)介紹過未進(jìn)行版本控制的或者受版本控制的文件,在sourcetree的“文件狀態(tài)” 標(biāo)簽中查找,如圖所示:

鼠標(biāo)右鍵要忽略的文件,點(diǎn)擊“忽略”,選擇忽略的模式,即可將文件進(jìn)行忽略,如圖所示:

(3)tag使用方法
打tag的目的是在代碼的主要節(jié)點(diǎn)處有個(gè)標(biāo)記,方便下次修改代碼時(shí)可以準(zhǔn)確的找到想要找的代碼。而無需看著日志文件逐一回憶要找的代碼位置。

(4)分支管理與使用
使用sourcetree創(chuàng)建和使用分支是很方便的,不像之前使用的TortoiseGit只能在當(dāng)前代碼處創(chuàng)建分支,使用sourcetree的方便之處:
1、可以選擇特定的某版本創(chuàng)建分支
2、代碼檢出時(shí)可以按照分支進(jìn)行檢出
3、分支的添加很簡(jiǎn)單
分支添加:

1、可以在當(dāng)前的版本下創(chuàng)建分支
2、選擇指定的提交創(chuàng)建分支
3、點(diǎn)擊“創(chuàng)建分支”
分支提交到服務(wù)器:
在sourcetree右側(cè)內(nèi)容中的分支列表中,選中創(chuàng)建的分支,右鍵提交,如圖所示:

分支合并:
1、分支合并功能和分支添加功能類似,這里不再詳述,需要注意的是首先要切換到被合并的分支上,再進(jìn)行合并操作。
2、分支合并時(shí),可以選擇具體的某提交進(jìn)行合并,同時(shí)主分支可以合并到子分支;子分支可以合并到主分支;子分支之間也可以進(jìn)行合并。
(5)GIT與SVN同步
git svn工具集在當(dāng)前不得不使用 Subversion 服務(wù)器或者開發(fā)環(huán)境要求使用 Subversion 服務(wù)器的時(shí)候格外有用。不妨把它看成一個(gè)跛腳的 Git,在實(shí)際使用中不推薦這樣使用GIT。
(6)基本步驟
提交、拉取和推送
提交:
項(xiàng)目提交是為了維護(hù)本地版本庫,如果本地有未提交的內(nèi)容,則不允許拉取和推送;如圖所示區(qū)域有內(nèi)容時(shí),則代表本地未提交的內(nèi)容:

點(diǎn)擊Stage All,填寫提交信息既可以將本地內(nèi)容(暫存區(qū))提交到本地版本庫,如圖所示:

1、將未暫存的文件進(jìn)行暫存,如果有些文件不需要暫存,則可以進(jìn)行刪除,選中文件,右鍵“移除”即可。
拉取:從遠(yuǎn)程將代碼進(jìn)行更新,相當(dāng)于SVN的“更新”
推送:將代碼提交到遠(yuǎn)程。
(7)解決沖突
簡(jiǎn)單介紹

1、沖突文件的符號(hào)為“感嘆號(hào)”
2、選中“沖突文件”,右鍵——點(diǎn)擊”解決沖突“——點(diǎn)擊”打開外部合并工具“(備注:才操作時(shí)已經(jīng)安裝外部合并工具,同時(shí)在sourcetree中已經(jīng)進(jìn)行配置,詳見”集成文件對(duì)比插件“)
沖突界面
沖突解決界面如下:可以根據(jù)需要選擇內(nèi)容顯示類型,只”顯示更改“,”顯示沖突“或者”全部“

解決沖突
方法一:在相關(guān)的版本處,選中”沖突行”,合并區(qū)默認(rèn)處于合并位置,鼠標(biāo)右鍵,選擇最終沖突地方留下的內(nèi)容,如圖:

解決沖突之后效果圖:

1、沖突圖標(biāo)由”感嘆號(hào)”——“省略號(hào)”。
2、右側(cè)顯示修改后的代碼進(jìn)行查看。
3、同時(shí)修改的沖突文件有相應(yīng)的備份,大家可以下載到本地,方便沖突有問題再次修改文件。
備注:該文件下載之后請(qǐng)將版本庫中的該文件刪除,不要上傳到版本庫中。
4、修改完沖突之后,需要再次提交,推送。大家養(yǎng)成提交時(shí),提交有效的日志信息,不要將比如:123之類的信息推送到服務(wù)器中。
方法二:如果沖突非常少,可以直接在右側(cè)欄中解決沖突,如圖所示:

1、點(diǎn)擊未暫存區(qū)域的沖突文件。
2、右側(cè)列表中出現(xiàn)沖突的內(nèi)容。
3、選擇沖突內(nèi)容,解決沖突,如圖所示:

暫存行:表示保留該內(nèi)容
丟棄行:表示刪除該內(nèi)容
備注:區(qū)分于第一種方式,使用第一種方法解決時(shí),不要點(diǎn)擊”未暫存文件”,否則可能無法打開沖突文件
(8)版本回退
原則上,代碼推送之前要保證本地的代碼可運(yùn)行,不要將不可運(yùn)行或者有問題的代碼推送到服務(wù)器上,如果由于誤操作,將代碼推送到了遠(yuǎn)程,想重新修改上傳代碼,此時(shí),需要將版本進(jìn)行回退,回退方法如圖:

1、切換到日志/歷史標(biāo)簽
2、選擇要恢復(fù)到的版本,如圖藍(lán)色位置
3、鼠標(biāo)右鍵,選擇“重置當(dāng)前分支到此次提交”
4、選擇”重置模式”,如圖所示

5、彈出框中選擇”Yes”

(9)相關(guān)提示信息含義
沖突信息

先更新信息

小竅門:
如果推送時(shí),拉取右上方顯示數(shù)字,則需要先拉取再推送。
【使用說明】
使用中若出現(xiàn)提示:“ssh-agent...System.NullReferenceException”異常,請(qǐng)將Git升級(jí)到2.6版后再試一試。
出現(xiàn)此問題是此版本的一個(gè)bug,官方正在修復(fù)中。
【名詞解釋】
提交(commit):將暫存文件上傳到本地倉庫(我們?cè)贔inder中對(duì)本地倉庫做修改后一般都得先提交一次,再推送)檢出(checkout):切換不同分支
添加(add):添加文件到緩存區(qū)
移除(remove):移除文件至緩存區(qū)
暫存(git stash):保存工作現(xiàn)場(chǎng)
重置(reset):回到最近添加(add)/提交(commit)狀態(tài)
合并(merge):將多個(gè)同名文件合并為一個(gè)文件,該文件包含多個(gè)同名文件的所有內(nèi)容,相同內(nèi)容抵消
抓取(fetch):從遠(yuǎn)程倉庫獲取信息并同步至本地倉庫
拉取(pull):從遠(yuǎn)程倉庫獲取信息并同步至本地倉庫,并且自動(dòng)執(zhí)行合并(merge)操作,即 pull=fetch+merge
推送(push):將本地倉庫同步至遠(yuǎn)程倉庫,一般推送(push)前先拉取(pull)一次,確保一致
分支(branch):創(chuàng)建/修改/刪除分枝
標(biāo)簽(tag):給項(xiàng)目增添標(biāo)簽
工作流(Git Flow):團(tuán)隊(duì)工作時(shí),每個(gè)人創(chuàng)建屬于自己的分枝(branch),確定無誤后提交到master分枝
終端(terminal):可以輸入git命令行


































