在下图中,当我接触Git时,我做了以下提交。基本上我做了一个dev分支(粉红色),对它进行了一些提交,切换回我的主分支(蓝色)并在将我的dev分支合并到master之前进行了一些提交。
我现在要做的是重新启动“dev”,以便我可以开发一项新功能。 Git不允许我像以前一样创建一个新的分支“dev”。我知道我可以创建一个新的“foo”分支,但是如果可以的话,我想保持分支的总数。有没有办法让dev更新到最新的提交并重新分配它?
答案 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