記一次項目中遇到的git問題
阿新 • • 發佈:2018-05-08
問題 默認 需求 克隆 git問題 比較 補丁 自然 行合並
前言
因為之前在學校裏面做項目,對git接觸不是太多,項目沒有太多不間斷需求,所以基本上開發時很少有建立比較多的分支,對分支這一塊不熟,導致今天出現了一個問題。
遇到的問題
前幾天做的事
前幾天有做一個需求,是在項目的master分支上新建一個分支a。
具體做法:克隆項目的master分支到本地git clone 遠程地址
,默認是克隆項目的master分支到本地,然後在master新建一個分支add,並切換到該分支下,git checkout -b add
,然後在這個分支上幹完活之後,進行提交:
git add . git commit -m"xxxx" git push origin add
這時候遠程就有了我的add分支了,這樣還需要進行合並,因為是實習期間的項目,所以合並都在遠程上提一個merge請求,然後由部門老大進行合並,然後就ok了。
那麽問題來了
因為習慣了克隆了一次下來,不習慣再去遠程克隆一次。今天產品那邊又提了一個需求,所以習慣成自然,我就直接在前幾天從遠程克隆下來的那個文件目錄下進行幹活了。
具體幹的活是什麽
- 這次需求還是直接在master分支下新建一個分支bb進行幹活
git checkout -b bb
在bb分支下進行幹活,幹完活之後,進行提交:
問題分析:因為之前老大有將我做的add分支合並到遠程的master分支上,所以做了上述的工作之後,這時候本地的master分支和遠程的master分支不同,所以這時候如果將遠程的bb分支和master分支進行合並會出現沖突問題。git add . git commit -m"xxxx" git push origin bb
問題解決:- 切換到本地分支master,將遠程分支master合並到本地master
git pull origin master
- 再切換到bb分支下,
git rebase master
,最後會把你的”bb“分支裏的每個提交(commit)取消掉,並且把它們臨時保存為補丁(patch)(這些補丁放到”.git/rebase“目錄中),然後把”bb“分支更新到最新的”master“分支,最後把保存的這些補丁應用到”bb“分支上。 git push -f origin bb
這時候再將其修改push到遠程的bb分支上,最後再將bb分支合並到master上。
記一次項目中遇到的git問題