大佬教程收集整理的这篇文章主要介绍了强制 git pull 通过丢弃所有本地提交来解决分歧?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含 3 个提交的本地存储库:
A -> B -> C
远程仓库还有另外 3 次提交:
A -> B -> D
如何让 git pull
通过丢弃所有本地提交来解决分歧? git pull --some-magic
之后的本地仓库应该是:
A -> B -> D
请注意,git reset head~1 --hard
不起作用,因为我的脚本不知道必须还原多少次提交才能避免冲突。
我正在编写一个脚本来在 github 和 gitlab 存储库之间进行同步。其中之一是只读镜像。我的脚本只是尝试从 origin1 和 git pull --force
到 origin2 的 git push
。
但是,如果有人更改了 origin1
的历史记录,我的脚本中的 git pull
将失败并显示错误消息。解决问题的唯一方法是删除整个本地存储库,并从stretch执行git clone
。浪费带宽而且速度很慢!
您不应使用 git pull
执行此操作,因为 git pull
的设计目的不同:组合工作。但是您不希望合并工作;你想反映他们的最新提交。
要实现这一点,只需运行 git fetch
以获取他们的最新提交,然后使用 git reset --hard
将您的本地分支重置为他们的最新提交。唯一棘手的部分是 git reset --hard
要求他们最新提交的身份。这对您可用:如果您知道您的本地分支名称是 @H_173_7@main,因为它们的分支名称是 @H_173_7@main,那么您自己的 Git 将更新您的 origin/main
,因此您可以使用 {{1 }}。
或者,您可以使用当前分支的上游设置:
git reset --hard origin/main
请注意,这将丢弃已提交和未提交的工作,因此要小心。
以上是大佬教程为你收集整理的强制 git pull 通过丢弃所有本地提交来解决分歧?全部内容,希望文章能够帮你解决强制 git pull 通过丢弃所有本地提交来解决分歧?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。