簡體   English   中英

合並后重用開發分支

[英]Reuse a develop branch after merge

Git新手在這里! 場景如下:應用內置 Laravel + Envoyer 進行部署。 所以我有一個 master / develop 分支,第一個部署到 site.com,另一個部署到 dev.site.com

我在開發分支上開發了一個新功能並在 dev.site.com 上進行了測試。 所以我已經將開發分支合並到主分支。 現在似乎開發分支不再活躍(任何更改都會影響主分支,反之亦然)。 換句話說,他們不再分開了。

我讀過在合並后重用分支不是一個好習慣,但在這種特定情況下,我需要再次有一個名為“develop”的分支。

我試過刪除 develop 分支並創建一個同名的新分支(如建議here )但沒有成功:似乎舊的 develop 分支已恢復。

有什么建議嗎?

來自 bitbucket 的截圖

你想合並 master 來開發分支。 為此,運行

git checkout develop
git merge master
git log

現在您可以看到您的 develop 分支包含來自 master 分支的所有提交,包括您將 develop 合並到 master 時的提交。 您可以像往常一樣在開發分支中進行開發。

另請參閱此問題: Git 重用分支或刪除並再次創建

在 git 中,分支是輕量級的。 您可以將分支視為一個標簽或指向特定提交 X 的指針。當您“提交到分支”時,它將舊的提示提交與具有父子關系的新提交相關聯,並推進分支指針。 關系存儲在提交中,它與分支標簽分開存在。

每個提交可能有多個父項。 這就是您合並時發生的情況:它使用 2 個父項進行了新的提交 M(稱為“合並提交”)。 在那個時間點(如果做得對),您的“主”分支可能指向合並提交 M,而“開發”分支仍指向您最新的開發提交(如果藍色分支,我認為它是 83bebd6是“發展”)。

現在,要了解您的分支是否有分歧,您可以運行:

git show master
git show develop

這將顯示每個分支指向的提交(再次考慮提交的標簽)。

要知道您當前所在的分支,請運行git branch 如果您當前處於“master”,則意味着每次提交都會推進並更新master “標簽”(並且一旦提交,它將與您擁有的任何其他分支“發散”,因為通常您無法提交一次有多個分支)。

盡管這是一個危險且具有破壞性的操作,但您始終可以“重置”分支“標簽”以指向其他(以前的甚至完全不相關的)提交:

git checkout develop
git reset --hard 83bebd6

這將在本地進行,以便“開發”指向提交 83bebd6。

如果您希望此分支在 bitbucket 服務器上重置(這更加危險和破壞性),您可以:

git push -f

暫無
暫無

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

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