您好,登錄后才能下訂單哦!
小編給大家分享一下Git中分支是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
1. 拉取推送分支:
git branch 分支名 : 創建分支
git checkout 分支名 : 切換分支
git checkout –b 分支名 : 創建并切換到新分支
本地拉取分支后推送到遠程:
git push <遠程主機名> <本地分支名>:<遠程分支名>
【注意】直接git push 會將當前本地分支推送到對應遠端同名分支,如果遠端沒有同名分支則會新建同名分支
【舉例】git push 和git push origin branchTest是等效的,都是將本地branchTest分支推送到遠端
2. 分支切換:
舉例的切換都是從branchTest切master分支
【場景1】分支切換后提示: Your local changes to the following files would be overwritten by checkout
【原因】如同push出現沖突問題一樣,該切換問題是因為當前branchTest修改代碼后,和master代碼沖突
比如,master的File1未666666、777777兩行;branchTest修改后把777777刪掉了,切換的時候就會出現該問題;
如果branchTest修改時,不對master的代碼做改動,即單純的添加888888,則不會出現該問題。
【解決1】Force Checkout 會保留原汁原味的master代碼,分支修改的代碼不會出現再master
Smart Checkout選擇讓你手動解決沖突,可參考:鏈接的第4點
Don't Checkout 就是讓你放棄切換分支
【解決2】Don't Checkout放棄切換,然后commit一下,再切換,就不會有如上問題
但這樣會導致本地存在多個commit,到時還得合并多個本地commit
3. 在錯誤的分支修改了代碼:
【場景】在branchTest修改完代碼后,發現分支錯了,應該是要在master是修改的
【解決1】未commit情況下,切換master分支,如上解決沖突;
commit了的話,可以reset后再切換;當然如果改動不大,可以切換后重新修改吧,
【解決2】如果能確定push前遠端兩個分支的代碼是一樣的, 那么可以git push origin branchTest:master將branchTest提交的代碼推送到遠端commit分支
【解決3】 如果push前遠端兩個分支的代碼不一樣,會push rejected
3-3-a. pull遠端master代碼到當前分支,會提示沖突,手動解決沖突
3-3-b. 代碼重新commit
手動解決沖突后,可以看見log中,之前提交的commit已經斷開了,所以需要重新提交commit
重新commit后,會自動合并回來,這樣就可以git push origin branchTest:master
【建議】修改代碼前明確分支,提交代碼前先拉取代碼,有沖突則解決沖突。
看完了這篇文章,相信你對Git中分支是什么有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。