17

摘要:重现错误

  • 创建一个分支并检查它
  • 让其他人删除它并创建一个具有相同名称的新分支
  • 现在做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 develop了,我git pull ! [rejected] develop -> origin/develop (non-fast-forward)git remote show origin说了一切(最新的)

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

4

2 回答 2

14

我也必须删除跟踪分支

git branch -d -r origin/develop
于 2012-08-27T17:34:09.030 回答
7

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

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

git checkout -b new_develop --track origin/develop

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

如果您已完成编辑,只需删除您的本地develop分支,然后将其重命名new_developdevelop.

于 2012-08-07T11:10:35.030 回答