意外地将github repo合并到个人项目中

时间:2015-07-09 18:29:35

标签: git github

我不小心将github repo拉到了与我的.git相同的文件夹中的个人项目中。这已经产生了将repo中的提交与我的项目交织在一起的效果。现在不是30次提交,而是600.有一个很好的方法可以解除这两组提交。我可以删除(并删除它们会很好)具有不同作者姓名的提交吗?

重新定位并不是一个真正的选择,因为我经常推送到公共仓库,这会导致两组提交明显不同步。

2 个答案:

答案 0 :(得分:3)

如果您可以找到这些提交开始分歧的点(也就是说,如果您可以找到创作的最后一次提交),那么您可以将master的提示移动到该特定的提交,强行推动它。

这在外行人的术语中意味着什么:

使用这些提交,square表示你已经创建的那些,并且表示引入的那些:

 [ ] ---- [ ] ---- [ ] ---- [ ] ---- { } ---- { } ---- { } ...
                                                        ^

...您希望能够重置为最新提交。

git reset --hard <SHA>


 [ ] ---- [ ] ---- [ ] ---- [ ] ---- { } ---- { } ---- { } ...
                             ^

此时,你会强行推动你的分支。

git push --force

遥控器上的历史记录似乎从未发生过其他提交。

答案 1 :(得分:1)

我最终解决的问题是:

我使用squash重新绑定到分支的末尾。然后我手动删除了不属于原始项目的提交。我也使用git checkout --theirs|--ours了很多。最后,我必须使用str解决一些合并问题。这非常繁琐但似乎是一个可靠的解决方案。

希望可以帮助别人。