[英]Git / Gitlab Flow Workflow
我們的項目中包含以下分支:
我們使用諸如feature / myfeature-123之類的分支來開發新功能。 如果完成,我們會將它們合並到母版中。 一段時間后,當完成足夠的功能並將其成功合並到master后,我們便將項目部署到試生產階段。 為此,我們需要將最新的更改合並到試生產分支中。
注意:在此期間,生產前分支沒有任何更改
這是我們的問題:我們面臨許多合並沖突。 然后我想,好的。 讓我們手動修復它。 我做了以下事情:
git pull origin master
將當前狀態從master
轉移到此分支。 如上所述,我們面臨許多合並沖突。 由於我們在預生產分支中沒有進行任何更改,因此我想接受在master分支中進行的所有更改。 這應該解決所有沖突。
這項工作正常, 但是在master分支中,我們刪除了預生產分支中的幾個文件/行。 我本來希望這些刪除的文件/刪除的行也將應用於預生產分支。 但是事實並非如此。 他們留在試生產部門。 任何想法該怎么辦,以解決此問題?
我不是最大的專家。 我對Git有一個大致的了解,但是我仍然害怕通過執行錯誤的命令來破壞事物。 我以為如果rebase
可以在這里有所幫助,但我不知道。
感謝您提供的任何幫助。
如果您確定,那位大師就是真理的源頭,並且是一種fast-forward
(!)。 您可以在接受師父的同時合並。 然后可以通過詹金斯/特拉維斯/ CI中的工作來完成。
將-X選項添加到他們的選項中。 例如:
git fetch --all --prune
git checkout preproduction
git merge -X theirs origin master
一切都會以所需的方式合並。
是否有“他們的”版本的“ git merge -s ours”?
這種方法的優點是,您仍然可以保留提交歷史記錄。
使preproduction
恢復到與master
preproduction
可能會很好。 您可以執行以下操作:
git log --oneline master..preproduction
僅列出預生產中的9個提交。
然后,在master
狀態下重置preproduction
:
git checkout preproduction
git reset --hard master
最后,將您感興趣的以上列出的9個提交中的任何一個重新添加到預生產中:
git cherry-pick <commit-hash>
然后,您將不得不強制推遲preproduction
因為它將與原產地背道而馳。
這將使它與master
。 不過,理想情況下,您將只希望不進行preproduction
,因為將來可以很容易地使用最新的母版進行推送。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.