簡體   English   中英

將 develop 分支合並到 master 不是我想象的

[英]Merging develop branch into master is not what I envisioned

我們使用簡化版的 Git 流程,我們的大部分工作直接在開發中進行,只有在發布時我們才合並回 master。

我們剛剛發布了第一個版本,因此這是我第一次將 develop 合並回 master,因為我首先在開始時創建了 master 分支,然后將其分支 develop 了。

我設想的是將單個提交合並回 master 分支,這樣如果我以后在一個干凈的文件夾中檢出 master,我只會看到原始提交和新版本提交。 相反,我在我的 master 分支歷史中看到了develop 分支整個提交歷史。

我明白這是為什么。 畢竟,這些只是 2 個合並的分支,快進合並只會將 master 壓縮到我的 develop 分支的頂端。 但這不是我想象的。 對我來說,檢查 master 分支並能夠看到從另一個分支導致它的所有工作的整個歷史似乎很奇怪。

在這種情況下,我發現自己在考慮為什么我們要同時維護開發和主分支,如果我們只是將它們合並在一起,查看相同的歷史記錄,並使用標簽來指示已發布的提交(我們是一家小公司) ?

這是大多數人的做法嗎? 這是“正確的”嗎(我知道這是一個沉重的問題)? 或者人們是否將 master 與所有其他分支不同,並且可能進行壁球合並或 no-ff 合並以創建更干凈的 master 分支歷史記錄?

如果您使用的是受 gitflow 啟發的工作流程,那么您可能希望在合並時使用--no-ff選項。

git checkout master
git merge --no-ff dev

即使快進是可能的,這也會強制合並提交,所以你得到

--- O ----------- M <--(master)
     \           /
      x -- x -- x <--(dev)

即便如此,默認情況下,大多數 git 命令仍會顯示詳細的歷史記錄(包括dev提交),但您可以使用--first-parent選項覆蓋它。

git log --first-parent master

也就是說,即使您最終要將dev快進到master ,也有其他原因可以將masterdev分支分開。 原因之一是確保master始終是最新發布的狀態。 可以使用版本標簽來實現這一點,但也許您想要一個始終表示“最新版本”的單一名稱,和/或您可能希望最新版本是新克隆中默認檢出的版本,或者其他你的團隊和項目特有的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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