我不小心将github repo拉到了与我的.git相同的文件夹中的个人项目中。这已经产生了将repo中的提交与我的项目交织在一起的效果。现在不是30次提交,而是600.有一个很好的方法可以解除这两组提交。我可以删除(并删除它们会很好)具有不同作者姓名的提交吗?
重新定位并不是一个真正的选择,因为我经常推送到公共仓库,这会导致两组提交明显不同步。
答案 0 :(得分:3)
如果您可以找到这些提交开始分歧的点(也就是说,如果您可以找到您创作的最后一次提交),那么您可以将master的提示移动到该特定的提交,强行推动它。
这在外行人的术语中意味着什么:
使用这些提交,square表示你已经创建的那些,并且表示引入的那些:
[ ] ---- [ ] ---- [ ] ---- [ ] ---- { } ---- { } ---- { } ...
^
...您希望能够重置为最新提交。
git reset --hard <SHA>
[ ] ---- [ ] ---- [ ] ---- [ ] ---- { } ---- { } ---- { } ...
^
此时,你会强行推动你的分支。
git push --force
遥控器上的历史记录似乎从未发生过其他提交。
答案 1 :(得分:1)
我最终解决的问题是:
我使用squash
重新绑定到分支的末尾。然后我手动删除了不属于原始项目的提交。我也使用git checkout --theirs|--ours
了很多。最后,我必须使用str
解决一些合并问题。这非常繁琐但似乎是一个可靠的解决方案。
希望可以帮助别人。