1. 程式人生 > 程式設計 >Git常用場景使用之分支操作

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常用場景使用-分支操作的文章就介紹到這了,更多相關Git常用場景使用內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!