有人推了3个我要删除的提交,但我的意思是我不想在Github的提交历史中看到它们,因为它们的名字错了。怎么实现呢?
答案 0 :(得分:1)
这取决于您的存储库的当前状态。
如果这些是最后三次提交,并且您真的想要看到它们并且#34;,您可以重置为位于这三个之前的提交:
git reset --hard HEAD~3
然后使用 - 强制 推送。
通常,如果您想还原提交,则应使用 git revert 。例如:
git revert git revert HEAD~< 2> .. HEAD
这会创建一个提交,从最后三次提交中删除更改。
答案 1 :(得分:1)
假设三个提交是最近提交的三个提交,那么第一个有用的是您想要恢复的父提交的总和。例如:6b1d1ca
。您可以在GitHub中的提交历史记录的右栏中找到它。
接下来,您要使用
将git树重置为该提交git reset --hard 6b1d1ca
由于您要从历史记录中删除提交,因此您需要强制推送到GitHub,这可以通过附加选项--force
来完成。
git push --force
小心使用--force
选项,如果你已经推送了提交,因为它们肯定会被覆盖。
答案 2 :(得分:0)
您可以使用rebase
命令删除或更改提交消息。
输入git rebase -i HEAD~4
。 -i
选项执行interactive rebasing。
您的文本编辑器将打开,列出最后的 4 提交。每次提交都会在其前面加上pick
。
删除要删除的提交的行。这将告诉rebase
您不希望将这些提交保留在历史记录中。
保存文件并关闭它。
现在,git应根据您在打开的文件中选择的选项对历史记录进行“重新定义”,即删除您不想要的提交。
如果要更改提交消息,请在每次要编辑的提交之前将pick
更改为reword
并保存文件。