git可視化工具Sourcetree使用全攻略(git沖突解決)
導(dǎo)入倉(cāng)庫(kù)
首先我們需要知道自己的倉(cāng)庫(kù)如何拉取到本地。
這里以碼云為例,找到對(duì)應(yīng)的源路徑/URL:

復(fù)制,然后來(lái)到Sourcetree:




更新版本操作
修改
當(dāng)你本地代碼發(fā)生改變時(shí),會(huì)出現(xiàn)未暫存文件:

拉取
當(dāng)別人更新了代碼,而你本地沒(méi)有拉取,拉取會(huì)亮起,可以點(diǎn)擊拉取別人代碼:

提交
當(dāng)你修改了代碼,需要提交操作:

分支操作
遠(yuǎn)程分支與本地分支
分支分為遠(yuǎn)程倉(cāng)庫(kù)的分支,與被你拉取到本地的分支

切換分支

要注意,如果本地有修改了沒(méi)有提交的代碼,注意是修改,新增內(nèi)容一般是不影響的,切換時(shí)會(huì)報(bào)錯(cuò)。

可以先通過(guò)提交操作再切換。
但是問(wèn)題來(lái)了,如果你代碼就修改了一半你還不想提交但是又不得已切換分支怎么辦呢?看下面。
貯藏
可以暫時(shí)保留修改的內(nèi)容,清空狀態(tài)區(qū),就可以進(jìn)行切換分支操作,等切換回來(lái)時(shí)再應(yīng)用貯藏區(qū),變回原來(lái)修改中的狀態(tài)。



當(dāng)我們切換出去再切回來(lái)時(shí),再進(jìn)行應(yīng)用


刪除分支
需要注意的是,刪除當(dāng)前分支時(shí)需要切換去別的分支,你不可以刪除當(dāng)前自己所在的分支。

獲取遠(yuǎn)程分支
我刪除了本地的dev分支,這時(shí)候我想要獲取遠(yuǎn)程的dev分支到本地,如何操作:


需要注意的是檢出分支時(shí)會(huì)自動(dòng)切換去檢出的分支,如果你本地還有修改了未提交的代碼,要注意先提交或者進(jìn)行貯藏操作噢。
創(chuàng)建新分支
比如我們希望創(chuàng)建一個(gè)測(cè)試版本的分支,所有更新操作都在測(cè)試版本上做,如果沒(méi)問(wèn)題了再合并來(lái)主分支,怎么創(chuàng)建呢?


其實(shí)也還是檢出操作,所以一樣要注意本地未提交代碼問(wèn)題。
合并分支內(nèi)容
我們?cè)趖est測(cè)試分支上提交了代碼,我們希望將他合并到master主分支。
首先我們先切回主分支:





沖突
合并沖突
為了測(cè)試沖突,我們先在master上創(chuàng)建提交一個(gè)簡(jiǎn)單的內(nèi)容,注釋了的111:

接下來(lái)我們切去test分支,在同樣的位置,提交一個(gè)注釋的222:

然后我們切換到master分支,進(jìn)行將test合并到master的操作,會(huì)提示你沖突了:

我們可以看到兩個(gè)不同版本的狀態(tài),沖突內(nèi)容:

選擇你要保留的,如果是我的版本那就是保留//111,如果是他人版本就是保留//222。

但是這里我們合并test,test只修改了這個(gè)內(nèi)容,如果我們選擇我的版本進(jìn)行合并,雖然進(jìn)行了合并操作,這次的合并操作便沒(méi)了什么意義,我們的master分支內(nèi)容什么都沒(méi)變。
不過(guò)實(shí)際項(xiàng)目中我們不會(huì)出現(xiàn)這種情況,肯定是視需求而決定需要保留什么內(nèi)容,比如test除了這個(gè)與我們沖突的注釋,還新增了其他功能,我們雖然沒(méi)有采納這個(gè)注釋的修改,但是我們合并了新增的功能。
被合并的test分支不會(huì)受到合并操作的任何影響,內(nèi)容不會(huì)發(fā)生改變,我們的合并操作只是為了讓master分支能夠得到test上更新的代碼。
未拉取便提交沖突
一般多人開(kāi)發(fā)時(shí)會(huì)遇到的狀況。
如果代碼沒(méi)有沖突,你們修改的不是同一個(gè)頁(yè)面的代碼,那拉取與提交的先后是不影響代碼內(nèi)容的。
比如別人制作了一個(gè)新頁(yè)面,你沒(méi)有拉取下來(lái),你修改了原來(lái)頁(yè)面的內(nèi)容,直接提交。

報(bào)錯(cuò)了。


出現(xiàn)這種推送不上去的狀態(tài)。


這時(shí)候不用急,你只要確保不要讓自己的錯(cuò)誤提交到遠(yuǎn)程就好
記住,工作中,寧愿自己修改的代碼丟失,也千萬(wàn)別覆蓋別人修改的代碼
其實(shí)很簡(jiǎn)單,我們切回到我們提交前的即可。

接下來(lái)先拉取再提交即可。

如果我們先拉取再提交時(shí),先拉取就報(bào)錯(cuò)了,一般就是最后一個(gè)錯(cuò)誤:拉取代碼與本地修改代碼有沖突,見(jiàn)下一節(jié)。
拉取代碼與本地修改代碼有沖突
比如別人將注釋修改為333,而你本地修改代碼時(shí),注釋修改成了777。
現(xiàn)在你想提交,先拉取再提交。
拉取時(shí)就報(bào)錯(cuò)了,死活拉不下來(lái),多少遍也不行。

這時(shí)候我們就先提交再拉取。

然后就會(huì)告訴你沖突在哪里了,我們就選擇保留哪個(gè)了,見(jiàn)上文合并沖突解決方法,解決完沖突再提交即可。

撤銷(xiāo)合并操作
假如自己合并了不想合并的內(nèi)容,想撤銷(xiāo)掉一次合并操作,如何進(jìn)行呢?

上圖dev合并到了master上面,這時(shí)候我們選擇合并前master的那一次提交,選擇重置分支到此次提交。

打開(kāi)強(qiáng)制推送。

不去管提交和拉取,直接選擇推送。

把改變內(nèi)容全部移除和丟棄。

然后就發(fā)現(xiàn)合并操作消失了。

尾言
看完這些,使用sourcetree可以解決你日常95%的git版本控制問(wèn)題啦,更多相關(guān)git可視化工具Sourcetree內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
2022編程語(yǔ)言需求排名出爐:第一不是Python,也不是Java
編程語(yǔ)言的流行程度、發(fā)展前景、就業(yè)市場(chǎng)這些一直都是程序員們非常關(guān)注的話題,需求排名是程序員們關(guān)注學(xué)習(xí)的風(fēng)向標(biāo),畢竟是市場(chǎng)經(jīng)濟(jì),學(xué)以致用,如果熱門(mén)編程不了解,都不好意思告訴別人你是程序員。編程語(yǔ)言的種類(lèi)有超過(guò)200+,但還有很多不為人知。2022-12-12
超好用的免費(fèi)內(nèi)網(wǎng)穿透工具【永久免費(fèi)不限制流量】
對(duì)于開(kāi)發(fā)人員來(lái)講,演示內(nèi)網(wǎng)web站點(diǎn)、本地開(kāi)發(fā)微信公眾號(hào)、小程序開(kāi)發(fā)、調(diào)試第三方支付系統(tǒng)對(duì)接等開(kāi)發(fā)環(huán)境,往往需要一個(gè)環(huán)境可以進(jìn)行調(diào)試,市面上內(nèi)網(wǎng)穿透工具有很多,這里推薦一款簡(jiǎn)單又好用的cpolar,可以永久免費(fèi)使用,不限制流量,支持http/https/tcp協(xié)議2022-09-09
將WSL系統(tǒng)更換國(guó)內(nèi)源的方法(固定路徑+國(guó)內(nèi)鏡像源+詳細(xì)教程)
這篇文章主要介紹了將WSL系統(tǒng)更換國(guó)內(nèi)源的方法(固定路徑+國(guó)內(nèi)鏡像源+詳細(xì)教程),首先找到wsl鏡像源,替換鏡像源,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10
ffmpeg安裝及音頻轉(zhuǎn)換指令應(yīng)用
ffmpeg是一套可以用來(lái)記錄、轉(zhuǎn)換數(shù)字音頻、視頻,本文主要介紹了ffmpeg安裝及音頻轉(zhuǎn)換指令應(yīng)用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
Source?Insight?4.0.093?安裝破解詳細(xì)圖文教程
這篇文章主要介紹了Source?Insight?4.0.093?安裝破解詳細(xì)圖文教程,source?insight?4是一款非常強(qiáng)大的程序編輯器,如果你沒(méi)有一款合適的代碼編輯器,那么這款軟件不妨試試,可能你會(huì)喜歡2022-08-08

