【发布时间】:2021-07-07 07:52:22
【问题描述】:
问题
我有一个包含 3 次提交的本地仓库:
A -> B -> C
远程仓库还有另外 3 个提交:
A -> B -> D
如何使git pull 通过丢弃所有本地提交来解决分歧? git pull --some-magic 之后的本地仓库应该是:
A -> B -> D
请注意,git reset HEAD~1 --hard 不起作用,因为我的脚本不知道必须还原多少次提交才能避免冲突。
为什么我需要这个
我正在编写一个脚本来在 github 和 gitlab 存储库之间进行同步。其中之一是只读镜像。我的脚本只是尝试 git pull --force 从 origin1 和 git push 到 origin2。
但是,如果有人更改了 origin1 的历史记录,我的脚本中的 git pull 将失败并显示错误消息。解决问题的唯一方法是删除整个本地存储库,并从拉伸执行git clone。既浪费带宽又慢!
【问题讨论】:
-
如何循环/当 git pull 命令不成功时,执行
git reset HEAD~1 --hard
标签: git git-merge git-pull git-merge-conflict