SourceTree使用方法

一 、SourceTree簡(jiǎn)介

SourceTree 是 Windows 和Mac OS X 下免費(fèi)的 Git 和 Hg 客戶(hù)端,擁有可視化界面,容易上手操作。同時(shí)它也是Mercurial和Subversion版本控制系統(tǒng)工具。支持創(chuàng)建、提交、clone、push、pull 和merge等操作。

二、下載安裝SourceTree步驟

1、下載地址:https://www.sourcetreeapp.com/,該版本是中文的
下載完成后可以進(jìn)行安裝。
2、安裝SourceTree
安裝首界面

1.png

點(diǎn)擊,Next
2.png

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

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

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

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

此時(shí)進(jìn)入到sourcetree的主界面,現(xiàn)在就可以使用sourcetree啦。

三、集成文件對(duì)比插件

安裝對(duì)比插件

Sourcetree中集成Beyond Compare 4,當(dāng)文件沖突時(shí)可以很好的解決沖突。安裝過(guò)程很簡(jiǎn)單,這里不再詳述。

Sourcetree中配置Beyond Compare 4

菜單欄,“工具”——“選項(xiàng)”,如圖所示:


7.png

選擇“比較”選項(xiàng)卡,然后將紅色方框處的內(nèi)容修改為如圖所示:


8.png

四、SourceTree基本使用

克隆

點(diǎn)擊克隆按鈕,克隆項(xiàng)目:
既可以是本地已有的git項(xiàng)目,也可以是遠(yuǎn)程目錄中的項(xiàng)目,


9.png

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


10.png

1、克隆項(xiàng)目的路徑
2、克隆項(xiàng)目存放的位置
3、如果要下載特定的分支,可以按分支進(jìn)行下載

配置忽略文件

利用.gitignore過(guò)濾文件,如編譯過(guò)程中的中間文件,等等,這些文件不需要被追蹤管理。
.gitignore文件只對(duì)還沒(méi)有加入版本管理的文件起作用,如果之前已經(jīng)用git把這些文件納入了版本庫(kù),就不起作用了
使用sourcetree添加忽略文件的方法:
正常情況下,管理員創(chuàng)建項(xiàng)目后需要直接將忽略文件創(chuàng)建好。創(chuàng)建方法如圖:


25.png

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


clipboard.png

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

tag使用方法

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


27.png

分支管理與使用

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


28.png

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


29.png

分支合并:
1、分支合并功能和分支添加功能類(lèi)似,這里不再詳述,需要注意的是首先要切換到被合并的分支上,再進(jìn)行合并操作。
2、分支合并時(shí),可以選擇具體的某提交進(jìn)行合并,同時(shí)主分支可以合并到子分支;子分支可以合并到主分支;子分支之間也可以進(jìn)行合并。

GIT與SVN同步

git svn工具集在當(dāng)前不得不使用 Subversion 服務(wù)器或者開(kāi)發(fā)環(huán)境要求使用 Subversion 服務(wù)器的時(shí)候格外有用。不妨把它看成一個(gè)跛腳的 Git,在實(shí)際使用中不推薦這樣使用GIT。

基本步驟

提交、拉取和推送
提交:
項(xiàng)目提交是為了維護(hù)本地版本庫(kù),如果本地有未提交的內(nèi)容,則不允許拉取和推送;如圖所示區(qū)域有內(nèi)容時(shí),則代表本地未提交的內(nèi)容:


11.png

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


12.png

1、將未暫存的文件進(jìn)行暫存,如果有些文件不需要暫存,則可以進(jìn)行刪除,選中文件,右鍵“移除”即可。
拉?。簭倪h(yuǎn)程將代碼進(jìn)行更新,相當(dāng)于SVN的“更新”
推送:將代碼提交到遠(yuǎn)程。

解決沖突

簡(jiǎn)單介紹

13.png

1、沖突文件的符號(hào)為“感嘆號(hào)”
2、選中“沖突文件”,右鍵——點(diǎn)擊”解決沖突“——點(diǎn)擊”打開(kāi)外部合并工具“(備注:才操作時(shí)已經(jīng)安裝外部合并工具,同時(shí)在sourcetree中已經(jīng)進(jìn)行配置,詳見(jiàn)”集成文件對(duì)比插件“)

沖突界面

沖突解決界面如下:可以根據(jù)需要選擇內(nèi)容顯示類(lèi)型,只”顯示更改“,”顯示沖突“或者”全部“


14.png

解決沖突

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


15.png

解決沖突之后效果圖:


16.png

1、沖突圖標(biāo)由”感嘆號(hào)”——“省略號(hào)”。
2、右側(cè)顯示修改后的代碼進(jìn)行查看。

3、同時(shí)修改的沖突文件有相應(yīng)的備份,大家可以下載到本地,方便沖突有問(wèn)題再次修改文件。
備注:該文件下載之后請(qǐng)將版本庫(kù)中的該文件刪除,不要上傳到版本庫(kù)中。
4、修改完沖突之后,需要再次提交,推送。大家養(yǎng)成提交時(shí),提交有效的日志信息,不要將比如:123之類(lèi)的信息推送到服務(wù)器中。
方法二:如果沖突非常少,可以直接在右側(cè)欄中解決沖突,如圖所示:


17.png

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

暫存行:表示保留該內(nèi)容
丟棄行:表示刪除該內(nèi)容
備注:區(qū)分于第一種方式,使用第一種方法解決時(shí),不要點(diǎn)擊”未暫存文件”,否則可能無(wú)法打開(kāi)沖突文件

版本回退

原則上,代碼推送之前要保證本地的代碼可運(yùn)行,不要將不可運(yùn)行或者有問(wèn)題的代碼推送到服務(wù)器上,如果由于誤操作,將代碼推送到了遠(yuǎn)程,想重新修改上傳代碼,此時(shí),需要將版本進(jìn)行回退,回退方法如圖:


19.png

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


20.png

5、彈出框中選擇”Yes”
21.png

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

沖突信息

22.png

先更新信息

23.png


24.png

如果推送時(shí),拉取右上方顯示數(shù)字,則需要先拉取再推送。

GIT與SVN的區(qū)別

Git與svn的區(qū)別
1.GIT是分布式的,SVN不是,這是GIT和其它非分布式的版本控制系統(tǒng),例如SVN,CVS等,最核心的區(qū)別。
解釋?zhuān)?br> a GIT跟SVN一樣有自己的集中式版本庫(kù)或服務(wù)器。但,GIT更傾向于被使用于分布式模式,也就是每個(gè)開(kāi)發(fā)人員從中心版本庫(kù)/服務(wù)器上chect out代碼后會(huì)在自己的機(jī)器上克隆一個(gè)自己的版本庫(kù)??梢赃@樣說(shuō),如果你被困在一個(gè)不能連接網(wǎng)絡(luò)的地方時(shí),就像在飛機(jī)上,地下室,電梯里等,你仍然能夠提交文件,查看歷史版本記錄,創(chuàng)建項(xiàng)目分支,等。對(duì)一些人來(lái)說(shuō),這好像沒(méi)多大用處,但當(dāng)你突然遇到?jīng)]有網(wǎng)絡(luò)的環(huán)境時(shí),這個(gè)將解決你的大麻煩。
b 這種分布式的操作模式對(duì)于開(kāi)源軟件社區(qū)的開(kāi)發(fā)來(lái)說(shuō)也是個(gè)巨大的恩賜,你不必再像以前那樣做出補(bǔ)丁包,通過(guò)email方式發(fā)送出去,你只需要?jiǎng)?chuàng)建一個(gè)分支,向項(xiàng)目團(tuán)隊(duì)發(fā)送一個(gè)推請(qǐng)求。這能讓你的代碼保持最新,而且不會(huì)在傳輸過(guò)程中丟失。GitHub.com就是一個(gè)這樣的優(yōu)秀案例。
2.GIT把內(nèi)容按元數(shù)據(jù)方式存儲(chǔ),而SVN是按文件
所有的資源控制系統(tǒng)都是把文件的元信息隱藏在一個(gè)類(lèi)似.svn,.cvs等的文件夾里。如果你把.git目錄的體積大小跟.svn比較,你會(huì)發(fā)現(xiàn)它們差距很大。因?yàn)?.git目錄是處于你的機(jī)器上的一個(gè)克隆版的版本庫(kù),它擁有中心版本庫(kù)上所有的東西,例如標(biāo)簽,分支,版本記錄等。
3.分支,該特點(diǎn)是GIT的有一個(gè)核心功能;這個(gè)功能對(duì)開(kāi)源社區(qū)的奉獻(xiàn)很大;對(duì)項(xiàng)目實(shí)際開(kāi)發(fā)意義很大;同一個(gè)工作目錄下快速的在幾個(gè)分支間切換。你很容易發(fā)現(xiàn)未被合并的分支,你能簡(jiǎn)單而快捷的合并這些文件。
在SVN,分支是一個(gè)完整的目錄。且這個(gè)目錄擁有完整的實(shí)際文件。如果工作成員想要開(kāi)啟新的分支,那將會(huì)影響“全世界”!每個(gè)人都會(huì)擁有和你一樣的分支。如果你的分支是用來(lái)進(jìn)行破壞工作(安檢測(cè)試),那將會(huì)像傳染病一樣,你改一個(gè)分支,還得讓其他人重新切分支重新下載,十分狗血。而 Git,每個(gè)工作成員可以任意在自己的本地版本庫(kù)開(kāi)啟無(wú)限個(gè)分支。舉例:當(dāng)我想嘗試破壞自己的程序(安檢測(cè)試),并且想保留這些被修改的文件供日后使用, 我可以開(kāi)一個(gè)分支,做我喜歡的事。完全不需擔(dān)心妨礙其他工作成員。只要我不合并及提交到主要版本庫(kù),沒(méi)有一個(gè)工作成員會(huì)被影響。等到我不需要這個(gè)分支時(shí), 我只要把它從我的本地版本庫(kù)刪除即可。無(wú)痛無(wú)癢。
4.GIT沒(méi)有一個(gè)全局的版本號(hào),而SVN有:
目前為止這是跟SVN相比GIT缺少的最大的一個(gè)特征。你也知道,SVN的版本號(hào)實(shí)際是任何一個(gè)相應(yīng)時(shí)間的源代碼快照。我認(rèn)為它是從CVS進(jìn)化到SVN的最大的一個(gè)突破。因?yàn)镚IT和SVN從概念上就不同,我不知道GIT里是什么特征與之對(duì)應(yīng)。如果你有任何的線索,請(qǐng)?jiān)谠u(píng)論里奉獻(xiàn)出來(lái)與大家共享。
5.GIT的內(nèi)容完整性要優(yōu)于SVN:
GIT的內(nèi)容存儲(chǔ)使用的是SHA-1哈希算法。這能確保代碼內(nèi)容的完整性,確保在遇到磁盤(pán)故障和網(wǎng)絡(luò)問(wèn)題時(shí)降低對(duì)版本庫(kù)的破壞。這里有一個(gè)很好的關(guān)于GIT內(nèi)容完整性的討論 –http://stackoverflow.com/questions/964331/git-file-integrity

  1. 代碼庫(kù)占極少的空間。易于代碼的分支化管理。目前支持中文,已經(jīng)有成熟的圖形化管理界面工具,使用難度大。
    最后總結(jié)一下:
    SVN的特點(diǎn)是簡(jiǎn)單,只是需要一個(gè)放代碼的地方時(shí)用是OK的。

GIT代碼管理平臺(tái)

開(kāi)源中國(guó)上的托管的代碼管理平臺(tái)很好用,適合管理代碼,但是對(duì)于一些代碼保密或者不方便放到公網(wǎng)上的代碼來(lái)說(shuō),還是需要在自己公司的內(nèi)網(wǎng)搭建一個(gè)GIT代碼管理平臺(tái)。
1、Gitolite 該代碼平臺(tái)是基于Linux操作的,一方面搭建起來(lái)很麻煩,另一方權(quán)限控制起來(lái)麻煩,每次新來(lái)人員需要將安裝GIT之后的pub文件發(fā)送給管理員,這樣會(huì)增加了管理員和git搭建人員的麻煩。
2、Gitblit 是一個(gè)純 Java 庫(kù)用來(lái)管理、查看和處理 Git 資料庫(kù).相當(dāng)于 Git 的 Java 管理工具.git的管家.
一方面它有基于windows的安裝版本,安裝過(guò)程只需下一步即可,很方便。
另一方面他是一個(gè)git代碼管理平臺(tái),統(tǒng)一管理用戶(hù),分配權(quán)限,同時(shí)可以查看版本庫(kù)的tag和分支情況

五、SourceTree&Git部分名詞解釋

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容