程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了强制 git pull 通过丢弃所有本地提交来解决分歧?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决强制 git pull 通过丢弃所有本地提交来解决分歧??

开发过程中遇到强制 git pull 通过丢弃所有本地提交来解决分歧?的问题如何解决?下面主要结合日常开发的经验,给出你关于强制 git pull 通过丢弃所有本地提交来解决分歧?的解决方法建议,希望对你解决强制 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。浪费带宽而且速度很慢

解决方法

@H_801_48@

您不应使用 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,请注明来意。
标签:pull强制