git删除并重新创建分支

时间:2012-08-07 11:05:08

标签: git

摘要:重现错误

  • 创建一个分支并查看
  • 让别人删除它并创建一个名称相同的新分支
  • 现在执行git branch -D <branch>git checkout -b <branch> --track origin/<branch>
  • git pull上获得! [rejected] <branch> -> origin/<branch> (non-fast-forward)

要修复它,您还必须删除git branch -d -r origin/<branch>的远程跟踪信息


OLD:有人删除了开发分支并创建它以删除所有功能分支并再次将主分区作为基础。然后他添加了一些功能分支,但没有其他一些功能分支。

我做了git branch -D developgit checkout -b develop --track origin/develop

当我现在尝试git pull时,我得到! [rejected] develop -> origin/develop (non-fast-forward)

git remote show origin显示

Local refs configured for 'git push': 
develop       pushes to develop     (local out of date)

我现在可以做git fetch origin developgit merge FETCH_HEAD,但后来我有一些冲突,他想推动很多事情发展。 (也许旧的分支提交?)并且git reset --hard我回到git pull显示被拒绝的消息的地方..

如何最好地结帐重新创建的分支?

编辑:即使我git branch -D developgit pull ! [rejected] develop -> origin/develop (non-fast-forward)git remote show origin说了所有内容(最新)

编辑:我一开始并没有认出它,因为提交消息是相同的,但是在重置之后,HEAD处于遥控器没有的sha上,所以仍然在“旧”分支上?

2 个答案:

答案 0 :(得分:11)

我还必须删除跟踪分支

git branch -d -r origin/develop

答案 1 :(得分:6)

你不能拉,因为它现在是另一个分支。

也许您应该从头开始并将remote develop分支作为新的本地分支获取!

git checkout -b new_develop --track origin/develop

执行此操作后,您可以在本地计算机上的分支之间进行合并或更改。 比较目录树和其他文件。

如果您完成了修改,只需删除当地的develop分支,然后将new_develop重命名为develop