如果可能的话,寻求Git的一些帮助。我是Git的新手,并试图学习如此忍受我;)
简而言之,我在两台不同的服务器上设置了两个远程存储库。我有一个设置正常,但在添加第二个时,我不小心添加了现有项目的回购。
然后我从第二个错误的仓库中取出并获得所有提交。我删除了这个不正确的远程仓库但是提交仍然存在于树中:-S我的所有真正的提交都在顶部,然后休息,然后是所有不正确的。
无论如何我可以从我的提交历史中删除所有这些提交,因为我希望尽可能保持我的树干净吗?
任何帮助都会受到赞赏。
提前致谢
答案 0 :(得分:1)
在错误拉动之前,git reset --hard
会提交吗?如果{“1}}是”休息“之前的提交,则可以执行hash1
如果在顶部你的意思是你的提交是在这些错误的提交之后,或者如果这些提交散布在你的历史记录中,我会建议git reset --hard hash1
并从错误的提取中删除提交。
答案 1 :(得分:0)
据我了解,你需要做这样的事情:
git rebase -i HEAD~5
这将显示一个文本编辑器,显示最近五次提交。只需从列表中删除您不想要的那些并保存即可。 git将更新索引,删除你不想要的提交。
答案 2 :(得分:0)
首先,删除您可能已使用git branch -d branchname
从错误的远程检出的所有本地分支(如果它抱怨它未被合并为主,则可能使用-D
,但请谨慎使用)。
接下来,在您移除了遥控器之后,您需要使用git fetch --prune
从您的存储库移除远程分支。
最后,您可以使用git gc
删除遗留下来的孤立对象引用。
答案 3 :(得分:-1)
你只需要做一个
git gc
删除遥控器后。
如果您有任何本地引用指向错误的分支,请先删除它们。
另请注意,引用是为了安全保存在reflogs和悬挂提交中。这些通常会在适当的时候到期,但如果您愿意,可以加快速度:
git gc --aggressive --prune=tomorrow
只有在您确定不需要恢复意外删除的任何内容时才执行此操作