我意外地做了一个提交,其中包含一些不应该提交的敏感信息。 这是提交历史记录的样子: Git commits
我删除了一些识别信息,但基本上我想删除提交C.理想情况下,我想在执行此操作时继续提交A和B,但如果不可行,则返回提交D是可以接受的。
注意:如果它有所不同,这是在主分支中。
我已经尝试了
git rebase D
git push
我也尝试过这里的说明: http://www.clock.co.uk/blog/deleting-a-git-commit
但他们都没有提供所需的结果。我确定我做错了什么。
答案 0 :(得分:-1)
几个选项:
您可以简单地还原C提交中的代码:
revert <C commit id>
它将还原此提交中添加的代码。
根据您的origin master
结帐新分支,然后选择要保留的提交,同时跳过您要删除的提交。
git checkout origin/master
git checkout -b <new_branch>
git cherry-pick <commit1> <commit2> ... <commitn>
有一天,您或协作者可能会意外地将敏感数据(如密码或SSH密钥)提交到Git存储库中。虽然您可以使用git rm从最新提交中删除该文件,但该文件仍将存在于存储库的历史记录中。幸运的是,还有其他工具可以从存储库的历史记录中完全删除不需要的文件。本文将解释如何使用其中两个:git filter-branch和BFG Repo-Cleaner。