Git常用場(chǎng)景使用之分支操作
1. 拉取推送分支:
git branch 分支名 : 創(chuàng)建分支
git checkout 分支名 : 切換分支
git checkout –b 分支名 : 創(chuàng)建并切換到新分支
本地拉取分支后推送到遠(yuǎn)程:
git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>
【注意】直接git push 會(huì)將當(dāng)前本地分支推送到對(duì)應(yīng)遠(yuǎn)端同名分支,如果遠(yuǎn)端沒(méi)有同名分支則會(huì)新建同名分支
【舉例】git push 和git push origin branchTest是等效的,都是將本地branchTest分支推送到遠(yuǎn)端
2. 分支切換:
舉例的切換都是從branchTest切master分支
【場(chǎng)景1】分支切換后提示: Your local changes to the following files would be overwritten by checkout
【原因】如同push出現(xiàn)沖突問(wèn)題一樣,該切換問(wèn)題是因?yàn)楫?dāng)前branchTest修改代碼后,和master代碼沖突
比如,master的File1未666666、777777兩行;branchTest修改后把777777刪掉了,切換的時(shí)候就會(huì)出現(xiàn)該問(wèn)題;
如果branchTest修改時(shí),不對(duì)master的代碼做改動(dòng),即單純的添加888888,則不會(huì)出現(xiàn)該問(wèn)題。
【解決1】Force Checkout 會(huì)保留原汁原味的master代碼,分支修改的代碼不會(huì)出現(xiàn)再master
Smart Checkout選擇讓你手動(dòng)解決沖突,可參考:鏈接的第4點(diǎn)
Don't Checkout 就是讓你放棄切換分支
【解決2】Don't Checkout放棄切換,然后commit一下,再切換,就不會(huì)有如上問(wèn)題
但這樣會(huì)導(dǎo)致本地存在多個(gè)commit,到時(shí)還得合并多個(gè)本地commit
3. 在錯(cuò)誤的分支修改了代碼:
【場(chǎng)景】在branchTest修改完代碼后,發(fā)現(xiàn)分支錯(cuò)了,應(yīng)該是要在master是修改的
【解決1】未commit情況下,切換master分支,如上解決沖突;
commit了的話(huà),可以reset后再切換;當(dāng)然如果改動(dòng)不大,可以切換后重新修改吧,
【解決2】如果能確定push前遠(yuǎn)端兩個(gè)分支的代碼是一樣的, 那么可以git push origin branchTest:master將branchTest提交的代碼推送到遠(yuǎn)端commit分支
【解決3】 如果push前遠(yuǎn)端兩個(gè)分支的代碼不一樣,會(huì)push rejected
3-3-a. pull遠(yuǎn)端master代碼到當(dāng)前分支,會(huì)提示沖突,手動(dòng)解決沖突

3-3-b. 代碼重新commit
手動(dòng)解決沖突后,可以看見(jiàn)log中,之前提交的commit已經(jīng)斷開(kāi)了,所以需要重新提交commit

重新commit后,會(huì)自動(dòng)合并回來(lái),這樣就可以git push origin branchTest:master

【建議】修改代碼前明確分支,提交代碼前先拉取代碼,有沖突則解決沖突。
總結(jié)
到此這篇關(guān)于Git常用場(chǎng)景使用-分支操作的文章就介紹到這了,更多相關(guān)Git常用場(chǎng)景使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何在Unity中使用VR暴風(fēng)魔鏡藍(lán)牙手柄
鑒于某些手機(jī)在使用大朋SDK以及谷歌SDK時(shí)會(huì)出現(xiàn)神器的小屏現(xiàn)象(比如某想的)故為了能夠最大程度的兼容更多的手機(jī),決定使用暴風(fēng)魔鏡的SDK。廢話(huà)不多說(shuō)直接將使用暴風(fēng)魔鏡SDK時(shí)遇到的問(wèn)題以及解決方案簡(jiǎn)單的羅列一下2021-09-09
git中submodule子模塊的添加、使用和刪除的示例代碼
這篇文章主要介紹了git中submodule子模塊的添加、使用和刪除的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
使用動(dòng)畫(huà)實(shí)現(xiàn)微信讀書(shū)的換一批效果(兩種方式)
這篇文章主要介紹了使用動(dòng)畫(huà)實(shí)現(xiàn)微信讀書(shū)的換一批效果,本文通過(guò)實(shí)例代碼通過(guò)兩種方式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05

