部分參考: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://www.reibang.com/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è)文件夾目錄用于文件傳輸施绎,打開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步中編輯完成后,打開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ù)的代碼更新到本地工作副本湃鹊。打開sourceTree,點(diǎn)擊 獲取按鈕儒喊,如下圖
一般在實(shí)際使用中是不會(huì)先點(diǎn)獲取,再點(diǎn)拉取的币呵,因?yàn)槔a都是直接一步到位為拉到本地工作副本的怀愧。所以直接一個(gè)拉取操作就夠了。
8余赢、分支芯义。
當(dāng)要新增一個(gè)功能,又要保證原始功能的正常的使用妻柒,這個(gè)時(shí)候?yàn)榱瞬挥绊懺δ艿氖褂帽显簦涂梢越⒁粋€(gè)分支,在分支上進(jìn)行新增功能的開發(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工具榴嗅。
如上圖,如果覺得解決版本OK陶舞,點(diǎn)擊保存后關(guān)閉對(duì)比工具嗽测。此時(shí),在sourcetree可看到新增了一條記錄為解決版本肿孵。
提交并推送該版本唠粥。沖突解決。
12停做、支持文件部分提交晤愧。
SourceTree比起tortoiseGit來(lái),最大的不同之處在于 Sourcetree支持文件的部分提交蛉腌,這大大方便了用戶的使用养涮。
? ? ? ?有的時(shí)候葵硕,我們開發(fā)了一個(gè)A功能,未上線贯吓,同時(shí)又并發(fā)開發(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)沒有用處了痴怨,可以進(jìn)行丟棄,丟棄過(guò)后器予,則上次修改的內(nèi)容則無(wú)效腿箩,即自動(dòng)刪除上次修改的所有內(nèi)容。