記錄一次git合併
阿新 • • 發佈:2020-09-20
背景
我今天在向其他分支合併程式碼時,出現衝突,然後我就在gitLab網頁上解決衝突。等我下午回頭整理自己分支的時候,發現自己分支有其他分支的程式碼。這也是GitLab在merge
程式碼時的一個操作:反向合併
模擬重現
- A:自己提測分支,於明天要合併到master分支;
- B:其他提測分支,於後天要合併到master分支;
由於測試環境正在測試B分支的功能,所以測試環境只能發B分支;現在我想驗證A分支上臨時新增的小功能,所以我就要把A分支合併B分支上,但出現衝突了,我在GitLab上直接解決衝突了。
GitLab
的解決衝突的機制:會先將B合併到A分支,此時A分支把衝突解決了,再將把解決衝突後的A分支合併到B分支。
這個時候就出現問題了:
明天要上線的A分支,含有後天才上線B分支的程式碼!!!
解決辦法:
首先,明確一個規則:A分支一定不能含有B分支的程式碼。
而在測試分支互相合並出現衝突後,不能直接解決衝突。因為,一但解決衝突,倆個測試分支都互相含有對方分支的程式碼;只要倆個分支上線時間不一致,就會違反上面的規則。
如何解決?
新建一個臨時分支C,測試環境使用C分支來測試。以最先上線的分支A來建立分支C,然後B分支向C提程式碼,這樣只有B分支有A分支程式碼,而A分支是乾淨的。
git衝突的原因
https://blog.csdn.net/themagickeyjianan/article/details/81540662