这个问题不是问如何修复这个错误,但如何在本地测试存储库中重新创建它,所以我可以真正理解这个错误的实际含义.我找不到一个很好的解释在这里或HERE或HERE或HERE .一种方法来重新创建这个错误被描述HERE,但这个描述是不完整的.
我想学习的原因是,当我试图从远程仓库(存储在其他计算机上)更新本地分支(我本地计算机上的分支)时,我遇到了git的问题。
git pull
git pull --ff-only
git reset --hard feature/branch
etc.
字符串
也看到了this question,这对我没有帮助。
似乎是一个同事强制推到了那个分支,所以我不得不重置我的本地分支?(不确定这实际上意味着什么)。我试着“重置”我的本地分支,查看上面的所有命令和this question。但是它不起作用。
最后的解决办法是做(当在该分支上时)
git reset --hard 6c3b91e # <- a commit not in that branch ?????
git pull --ff-only
型
我问同事这是怎么回事,但他无法解释为什么我必须重置到一个甚至不在分支上的提交。
因此,我想自己重现这种情况,以了解发生了什么,了解正在发生的事情(就分支,提交,索引,HEAD等而言),以更好地理解和学习Git是如何工作的。
请不要建议书籍或文章,他们从来没有解释任何错误,在一个简洁明了的方式,我可能会理解.
有趣的是,我在main
分支上做了修改,但没有将其推送到远程,然后又做了一个git pull
,从而重现了这个错误。但首先,昨天发生这个错误时,我不在主分支上,其次,我对分支上的任何修改都不感兴趣。我想让分支在本地与远程仓库上的分支相等。
1条答案
按热度按时间6kkfgxo01#
创建“diverged”分支来显示你的问题真的很简单。错误消息取决于你的特定Git版本,也可能取决于本地配置。
字符串