我理解git rebase
了一下。我也理解git reflog
和git reset --hard
。但我试过的SO answers和blog posts似乎无法帮助我解决我所犯的错误。
我正在努力改变Marionette。我正在按照惯例做的事情,将我的提交压缩成一个,当我在某个时候注意到我实际上已经以某种方式“附加”了一堆提交to my PR。 now lists 6 commits,我最近的一个与其他人分开。
我不确定当你从多个用户那里压缩提交时,这是什么样的压缩,所以我的第一个问题是:这里发生了什么?他们不小心被压扁了吗?
第二个问题是我如何解决这个问题?我所做的一切似乎都没有用。在我做任何rebase之前我git reset --hard
,它仍然显示那6个提交为未提交的提交。即使我在克隆回购的过程中一直reset --hard
,它仍会列出其他提交。
这里发生了什么?你对我如何解决这个问题有什么想法吗?
答案 0 :(得分:0)
这是答案(信用转到cobbweb):
完全重置您的存储库
git reset --hard origin/master
这样做是将您的存储库更新为与远程存储库处于相同的状态。它还会将所有提交(包括您想要的提交和您不想要的提交)设置为本地分支中的未提交提交。这就是你想去的地方。
选择 您想要的提交
git cherry-pick {{ SHA }}
其中{{SHA}}
是该事物的提交ID。它看起来像 344dc098ffle90aaef3 。
强行推动,你应该好好去
git push --force
如果您想了解更多关于这里发生了什么的事情,请对我们在这里完成的每项事情进行谷歌/搜索:硬重置,挑选樱桃和强制推送。你会找到关于它们的大量信息。
注意:此问题和解决方案仅涉及主分支。如果您正在处理具有多个分支的情况,情况可能会有所不同。