本文主题:在执行git commit 成功且并未执行git push 将本次提交推送到远程仓库的情况下,若想撤销本次提交,最佳实践是怎样的呢?下面,请看:
假定,git commit后(还未执行git push),我们执行git log看到的提交记录如图1所示。
我们可以看到:
最新一次的commit_id: dbd770c810c192c81d45ee5bb728a4a6f613b4a4;
上一次的commit_id: 0c59412e237fc2a47ca60b0cc5ece004e80ed9d4。
基于以上条件。接下来,我们直奔正题。
想撤销最新一次的提交,即 commit_id 等于dbd770c810c192c81d45ee5bb728a4a6f613b4a4的修改,我们有两种可选方案:
1、执行 git reset --hard commit_id
解释说明:这里的commit_id应该是图1中的 上一次提交id,即0c59412e237fc2a47ca60b0cc5ece004e80ed9d4。也就是说彻底放弃commit_id=dbd770c810c192c81d45ee5bb728a4a6f613b4a4的最新修改,恢复到修改前的原始状态。一旦执行成功,修改将不可找回!
2、git reset commit_id
解释说明:命令行的commit_id 同样应该是图1中标注出的 上一次提交id,即0c59412e237fc2a47ca60b0cc5ece004e80ed9d4。命令执行成功后,可以撤销git commit命令提交的最新修改,但发生修改的内容仍将保留在版本库当中(相当于回到最新一次 git commit 之前的 git add 状态)。
以上2种方式,应视具体情况而定!
如果觉得对您有所助益,欢迎点赞转发!期待您的关注!