git学习心得之2--糟糕操作后的后悔药

时间:2021-08-05 16:23:18

在git操作时,由于各种原因,难免会有一些想后悔的时候,这时就必须要根据情况组合使用一些git的命令。

目前我掌握的命令不多,但是足够应对一些简单的情况,较常使用的命令如下:

git log 查看当前分支的提交记录,根据commit的相应编号来进行之后的操作,比如版本回退等。

git log origin/master 查看远程仓库origin的master分支的提交记录,不过在使用中发现,这个命令并不是时刻与远程保持同步的,获取的结果似乎是上一次fetch下来时远程分支的状态。

git reset --hard comit编号 这个命令可以实现版本回退功能,--hard参数的作用是将工作区中的源代码也恢复到目标时刻提交后的状态,但是会清空该次commit之前的log信息。

git reflog 这个命令很重要,即使git log信息丢失了,每次操作的信息依然还会在reflog中看到,这样我们就可以利用git reset --hard 操作编号 命令再次恢复到指定的状态,自然也可以回到上次reset之前!

但是如果我们已经把糟糕的代码提交到了远程分支怎么办?远程分支是无法直接git reset的,虽然你依然可以把远程分支fetch下来后回退,但是还有更好的办法:

git revert commit编号 这条命令可以自动生成一次新的commit,这次commit会达到撤销指定commit操作所提交的修改的效果,尤其适合刚刚push错误代码后使用,直接git revert HEAD即可,然后push到远程分支,即可“中和”掉上一次的错误提交,但是如果你rervert的commit是在更早的时候,那就有可能和现有的代码发生冲突,这种情况就只能解决冲突后再次提交了。