重新分支之前合并的分支

时间:2014-10-24 08:31:45

标签: git bitbucket atlassian-sourcetree

在下图中,当我接触Git时,我做了以下提交。基本上我做了一个dev分支(粉红色),对它进行了一些提交,切换回我的主分支(蓝色)并在将我的dev分支合并到master之前进行了一些提交。

我现在要做的是重新启动“dev”,以便我可以开发一项新功能。 Git不允许我像以前一样创建一个新的分支“dev”。我知道我可以创建一个新的“foo”分支,但是如果可以的话,我想保持分支的总数。有没有办法让dev更新到最新的提交并重新分配它?

enter image description here

2 个答案:

答案 0 :(得分:1)

可能最简洁的方法是将代码从主服务器合并到“dev”分支。这样,您将从主分支到您的“dev”分支获得所有更改。

git checkout dev
git pull origin master
git push origin dev

假设你已经在本地设置了dev分支(如果没有运行git checkout -b dev --track origin/dev)并且假设你的远程被称为origin,那么应该检查dev分支,然后从远程主分支获取和合并更改,然后推回到远程开发分支。

这也可以防止强制推送或删除分支然后重新创建任何问题。

答案 1 :(得分:0)

注意:由于已经有一个远程分支dev,您应该创建一个新的分支,并将dev保留为它。

如果您确实要更改现有的远程分支dev,可以在本地远程删除dev分支并创建新的dev分支,也可以重置{{1分支指向另一个提交并推送它。

请记住,在这两种情况下,您都需要更改dev提交指针。换句话说,远程分支将指向另一个提交。如果其他开发人员正在origin/dev分支机构工作,那么下次启动时他们将遇到大麻烦。如果他们已经同时推动了他们的更改,则有效地删除他们的更改。

因此,如果有其他人在dev上工作,您应该先与他们讨论。 我不能确定你是唯一一个与dev合作的人,而不是那个人。{/ p>

然而,如果你想这样做,或者你真的必须在这里工作:

将dev重置为master并推送--force

dev

删除本地和远程开发并重新创建

git checkout dev
git reset --hard master
git push --force origin dev