簡體   English   中英

Git / Gitlab流程工作流

[英]Git / Gitlab Flow Workflow

我們的項目中包含以下分支:

  • 預生產
  • 生產

我們使用諸如feature / myfeature-123之類的分支來開發新功能。 如果完成,我們會將它們合並到母版中。 一段時間后,當完成足夠的功能並將其成功合並到master后,我們便將項目部署到試生產階段。 為此,我們需要將最新的更改合並到試生產分支中。

注意:在此期間,生產前分支沒有任何更改

這是我們的問題:我們面臨許多合並沖突。 然后我想,好的。 讓我們手動修復它。 我做了以下事情:

  1. 結帳預生產
  2. (為了安全起見)在此分支中拉出最新更改(沒有)
  3. 從我所在的當前分支創建一個新分支。名稱:Deployment-april2019
  4. 切換到這個新分支
  5. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM