合并后重用开发分支

时间:2018-05-04 18:04:32

标签: git bitbucket branch git-merge envoyer.io

Git新手在这里!这是场景:在Laravel + Envoyer中构建的用于部署的应用程序。所以我有一个主/开发分支机构,第一个部署到site.com,另一个部署到dev.site.com

我在开发分支上开发了一个新功能,并在dev.site.com上进行了测试。所以我将develop分支合并到master分支中。现在似乎开发分支不再处于活动状态(任何更改都会影响主分支,反之亦然)。换句话说,他们不再分开了。

我已经读过在合并后重复使用分支不是一个好习惯,但在这个特定情况下,我需要有一个名为“develop”的分支。

我尝试删除开发分支并创建一个具有相同名称的新分支(如建议here)但没有成功:似乎旧的开发分支已恢复。

有什么建议吗?

Screenshot from bitbucket

2 个答案:

答案 0 :(得分:0)

您要合并母版以开发分支。为此,运行

git checkout develop
git merge master
git log

现在,您可以看到您的developer分支包含master分支的所有提交,包括将development合并到master时的commint。您可以照常在开发分支中进行开发。

另请参阅以下问题:Git reuse branch or delete and create again

答案 1 :(得分:-1)

在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