今天记录一个不常用的 git 命令:
git push origin +commit的哈希值:分支名
举个例子:
git push origin +1234567890abcdef:main
这个命令是干什么用呢?
当我们提交了若干个commit后,我们发现我们的提交是有错误的,然后我们不想要这几个commit了。此时我们可以通过提交新的commit然后恢复之前的代码。但是,此时会commit记录中还是会出现之前的记录。如果我们想删除掉这几个记录,我们该怎么办呢,这个时间上面👆🏻的命令就出现了。
没错,上面的命令就可以删除掉记录,然后让我们的commit记录中不再出现多余的记录。请看下面的。例子
我们要删除两个错误的提交,commit1和commit2。
我们要恢复到 b922175ec0df603cbe6970e8ddfb632831b0f273 这个commit,分支名称为 main,执行上面的命令
git push origin +b922175ec0df603cbe6970e8ddfb632831b0f273:main
看到下面的情况就表示成功了
这个时候去github上查看commit记录的如下:
此时远端已经没有commit1和commit2了。
但是我们本地还是有这两个commit的,如果你此时执行 git push 还是会直接把两个commit push到远端。当然了,这不是我们想要的,此时我们执行下面的命令,让本地代码也回到之前的版本
git reset --hard b922175ec0df603cbe6970e8ddfb632831b0f273
结果如下图所示:
截至目前,我们的代码已经回退了,同时也删除了commit1和commit2。
操作警告
删除记录的操作尽量还是少做,避免误删代码。