部分參考:https://blog.csdn.net/syq8023/article/details/89844030
1、在GIT注冊(cè)賬號(hào)
https://gitee.com/lottie22/projects (手機(jī)號(hào))
2、新建倉(cāng)庫(kù)
3、下載sourcetree安裝包:
鏈接:https://pan.baidu.com/s/1BFofwtTL6Z6sSIwthykd2Q
提取碼:2vhj
4、安裝時(shí)跳過(guò)注冊(cè)(參考http://m.itdecent.cn/p/9d4f66bdbe56和https://www.cnblogs.com/xiaohuizhang/p/12355751.html)
=============================
1. 在下面路徑下創(chuàng)建一個(gè)accounts.json文件(把"你的電腦用戶名"部分替代成你自己的信息)
? ? C:\Users\"你的電腦用戶名"\AppData\Local\Atlassian\SourceTree
? ?(注意: 找對(duì)路徑. 在Local文件夾里也有一個(gè)SourceTree文件夾; 需要添加json文件的這個(gè)SourceTree文件夾在Local=>Atlassian下面)

2. 在json文件中輸入下面的內(nèi)容 (不需要做任何的更改)
[{"$id":"1","$type":"SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity","Authenticate":true,"HostInstance":{"$id":"2","$type":"SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount","Host":{"$id":"3","$type":"SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount","Id":"atlassian account"},"BaseUrl":"https://id.atlassian.com/"},"Credentials":{"$id":"4","$type":"SourceTree.Model.BasicAuthCredentials, SourceTree.Api.Account","Username":"","Email":null},"IsDefault":false}]
3. 完成上面步驟后,再次執(zhí)行SourceTree的安裝, 這次會(huì)直接跳出下面這個(gè)窗口. Mercurial也是一個(gè)版本管理工具, 不過(guò)我用的是git, 就選擇不用.

最終安裝成功 (我這個(gè)因?yàn)閺墓倬W(wǎng)下載一直失敗, 就從網(wǎng)上隨便找了一個(gè)包安裝,所以顯示中文).

============================
5、在本地新建一個(gè)文件夾目錄用于文件傳輸,打開(kāi)sourcetree,新建倉(cāng)庫(kù)->Clone.輸入git地址,本地目錄等。

6、提交和推送。由于git是分布式版本控制工具,存在著本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù),所以我們?cè)诒镜毓ぷ鞲北具M(jìn)行的編輯,要先提交到本地倉(cāng)庫(kù),再?gòu)谋镜貍}(cāng)庫(kù)推送到遠(yuǎn)程倉(cāng)庫(kù)。下面進(jìn)行演示。第7步中編輯完成后,打開(kāi)sourceTree, 可以看到文件的變動(dòng)已經(jīng)顯示到軟件界面,點(diǎn)擊暫存所選,類似于勾選要提交的文件。

提交時(shí)可能需要登錄GIT賬號(hào)。
提交時(shí)可勾選立即推送。也可提交后點(diǎn)擊推送。推送后才能在web上看到。

7、獲取和拉取
獲取是將遠(yuǎn)程倉(cāng)庫(kù)的代碼更新到本地倉(cāng)庫(kù),拉取是將本地倉(cāng)庫(kù)的代碼更新到本地工作副本。打開(kāi)sourceTree,點(diǎn)擊 獲取按鈕,如下圖

一般在實(shí)際使用中是不會(huì)先點(diǎn)獲取,再點(diǎn)拉取的,因?yàn)槔a都是直接一步到位為拉到本地工作副本的。所以直接一個(gè)拉取操作就夠了。

8、分支。
當(dāng)要新增一個(gè)功能,又要保證原始功能的正常的使用,這個(gè)時(shí)候?yàn)榱瞬挥绊懺δ艿氖褂?,就可以建立一個(gè)分支,在分支上進(jìn)行新增功能的開(kāi)發(fā),等到新增的功能測(cè)試通過(guò)后再把分支合并到主干上。如下圖,點(diǎn)擊分支,輸入新分支名字,以當(dāng)前工作副本為基礎(chǔ)生成一個(gè)新的develop分支。

但是這個(gè)分支只存在于本地倉(cāng)庫(kù)。點(diǎn)擊推送,如下圖,勾選第一個(gè),將本地others分支推送到遠(yuǎn)程others分支
9、修改內(nèi)容,只在當(dāng)前分支提交和推送。后可看到,只在當(dāng)前分支有修改。
10、功能1和2測(cè)試通過(guò),現(xiàn)在要將others分支上新增的兩個(gè)功能合并到主分支master上。
將當(dāng)前分支切換到master分支,鼠標(biāo)移到到others分支,右鍵,選擇合并others至當(dāng)前分支,也即是主分支。智慧在主分支點(diǎn)推送。

11、沖突
可能會(huì)有多人同時(shí)編輯同一文件的情況。如原本文件1,在web端編輯的同時(shí)在本地編輯。保存web端編輯結(jié)果后,將本地修改提交并推送。推送時(shí)會(huì)報(bào)錯(cuò)。

既然提示 和遠(yuǎn)程倉(cāng)庫(kù)版本不一致,無(wú)法推送,那只能先拉成一致了。點(diǎn)擊拉取圖標(biāo),等執(zhí)行完,就會(huì)出現(xiàn)下圖所示。有一個(gè)待拉取的圖標(biāo)和一個(gè)待推送的圖標(biāo),并且test1.txt文件的圖標(biāo)變成了黃色的感嘆號(hào)。這個(gè)時(shí)候文件的沖突就造成了。

此時(shí),可以選擇使用他人版本/使用我的版本,或者進(jìn)入工具-選項(xiàng)-比較,使用外部工具beyond compare工具。



如上圖,如果覺(jué)得解決版本OK,點(diǎn)擊保存后關(guān)閉對(duì)比工具。此時(shí),在sourcetree可看到新增了一條記錄為解決版本。

提交并推送該版本。沖突解決。
12、支持文件部分提交。
SourceTree比起tortoiseGit來(lái),最大的不同之處在于 Sourcetree支持文件的部分提交,這大大方便了用戶的使用。
? ? ? ?有的時(shí)候,我們開(kāi)發(fā)了一個(gè)A功能,未上線,同時(shí)又并發(fā)開(kāi)發(fā)了B功能,B功能比A功能先上線,而且B功能和A功能修改的是同一個(gè)文件,這種情況在上線B功能時(shí),SourceTree就體現(xiàn)出優(yōu)勢(shì)了。
功能:在修改文件時(shí)暫存行/暫存區(qū)塊。然后提交-推送。
13、回滾提交
選定某個(gè)操作,右鍵回滾提交。提交成功后推送。則回滾。

若依次有A-B-C提交。在B環(huán)節(jié)回滾。

將第二次提交回滾。

于是解決沖突,保存并提交,推送。

推送后則是成功回滾并解決沖突的版本。
14、回滾到以前的版本,若版本的內(nèi)容已經(jīng)沒(méi)有用處了,可以進(jìn)行丟棄,丟棄過(guò)后,則上次修改的內(nèi)容則無(wú)效,即自動(dòng)刪除上次修改的所有內(nèi)容。
