场景:
Git回应:
更新被拒绝,因为您当前分支的提示落后于其远程对手.等等
我是唯一一个黑客入侵这个分支的人 - 没有其他人在触摸它.远程分支实际上位于本地分支之后.我根本不应该拉.
(如果我拉,Git报告两者之间的冲突,并迫使我将分支合并到自身)
为什么会这样(可能)发生?我该如何诊断/修复它?
要清楚,我不会在任何地方分支,也没有其他人在研究它:
Remote: Commit A -------- Commit B
Local: Commit A -------- Commit B -------- Commit C
Run Code Online (Sandbox Code Playgroud)
C是B的直接延续,不涉及分支.但是git认为C是A的一个分支:
Remote: Commit A -------- Commit B
------- Commit C
/
Local: Commit A -------- Commit B
Run Code Online (Sandbox Code Playgroud)
不是; 它是B的直接延续.
Chr*_*ial 194
你可能做了一些历史改写?您的本地分支与服务器上的分支不同.运行此命令以更好地了解发生的情况:
gitk HEAD @{u}
Run Code Online (Sandbox Code Playgroud)
我强烈建议您尝试了解此错误的来源.要修复它,只需运行:
git push -f
Run Code Online (Sandbox Code Playgroud)
该-f品牌这个"强制推"和覆盖服务器上的分支.当你在团队中工作时,这是非常危险的.但既然你是独立的,并确保你的当地国家是正确的,这应该没问题.如果不是这种情况,您可能会失去提交历史记录.
小智 6
解决方案非常简单,对我有用。
尝试这个 :
git pull --rebase <url>
Run Code Online (Sandbox Code Playgroud)
然后
git push -u origin master
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
163528 次 |
| 最近记录: |