场景:
- 我创建了一个新的分支
- 在它上面进行修改
- 提交更改
- 推送更改
- 继续在它上面进行修改
- 再次提交更改
- 尝试再次推送
Git 响应:
更新被拒绝,因为您当前分支的末端落后于远程分支。等等。
我是唯一在这个分支上进行修改的人 - 没有其他人在操作它。远程分支实际上落后于本地分支。 我不应该需要拉(pull)。
(如果我确实拉取(pull),Git会报告两个分支之间的冲突,并强制我将该分支合并到自己中)
为什么会出现这种情况?我该如何诊断/解决它?
明确一点,我没有在任何地方创建分支,而且没有其他人在操作它:
Remote: Commit A -------- Commit B
Local: Commit A -------- Commit B -------- Commit C
C是B的直接延续,没有分支。但是git认为C是A的一个分支:
Remote: Commit A -------- Commit B
------- Commit C
/
Local: Commit A -------- Commit B
不是这样的;它是B的直接延续。
git remote -v
和git show remote origin
的输出(假设 origin 是你遇到问题的远程仓库)可能会有所帮助。 - Ben Graham