需要删除回购中的重复提交;无法撤消错误的合并提交

时间:2019-05-06 19:01:25

标签: git

我开始学习更多有关git更高级方面的知识,并且我超越了自己。

我需要删除错误地推送到我的仓库中的提交,最终结果是重复了我仓库中的大多数提交。

我相信我搞砸了与来自父节点的多个不同分支的多个冲突,看来我最终将回购的内容与回购本身合并了。下面的代码片段是我的git日志中的最后几个条目。即使是“非重复的”回购也具有超过528个原始提交,因此我不想在此处粘贴如此大的数量,并且冒着比我可能会从这篇令人尴尬的帖子中得到的票数还要低的风险。至少,也许,这可能是教科书中的一个案例,说明了为什么您真的需要自己尝试进行高级git演习之前仍然要知道自己在做什么。

我尝试用rebaserevert撤消错误的合并提交。的确,错误地变基才使我陷入了最近的困境。我不愿承认,但我也尝试过reset。但是,使用git reset --hard HEAD~1git reset --hard HEAD~3(它们指的是错误的合并提交),然后暂存并尝试设置提交,将产生以下消息:

// ♥ git commit -m 'attempts to reset HEAD to master before erroneous merge'
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean 

提前感谢任何人可以提供的帮助。

上述git日志:

// ♥ git log --oneline --graph
*   f2608af5 (HEAD -> master, origin/master, origin/HEAD) Merge branch 'master' of github.com:stazman/sfsourcer
|\  
| *   5911dd07 Merge branch 'master' of github.com:stazman/sfsourcer
| |\  
| | * 7cb2f887 bundle updated
| | * 40c8438c adds .env to gitignore file correctly
| | * 5ae74993 more button disappears after clicked on funding_projects index view

1 个答案:

答案 0 :(得分:0)

我使用git rebase --interactive摆脱不需要的提交,但记住一件事。

  

不对存储库和人员外部存在的提交进行基准化   可能基于它们。

     

如果您遵循该准则,就可以了。如果不这样做,人们   会恨你,你会被朋友和家人嘲笑。

有很多策略和方法来维护存储库,并且有很多相关主题。对我来说,这个documentation很实用而且很好。

我认为您正在重写提交的历史记录并作为新的历史记录推送,因此存在很多“重复的”提交。

相关问题