【Git】git revert和git reset的不同之处Git revert和git reset是有所不同的

首先

本文记述了一个刚开始学习编程一个月的初学者针对学习过程中产生的疑问进行调查并总结了下来的备忘录。
因此,文章内容可能含有错误,请您谅解。
如果您发现了错误,请帮忙指正,将不胜感激。

这次的疑问点

关于这个问题,

关于git revert和git reset的区别

是这样的。

关于疑问点的解释

結果

git revert:创建一个撤销指定提交内容的提交

git reset:删除指定的提交

撤销 git

git revert会创建一个撤销指定提交内容的提交。因此,指定的提交不会从日志中消失。此外,在执行git revert之后,需要进行push操作。


 git revert [打ち消したいコミットコード]  #指定したコミットを削除

 git revert -m [1か2] [打ち消したいコミットコード] --no-edit #指定したマージコミットを削除

 
git log

commit a9857cfa0d63caef134k7ea07061370ffd0fe3dc
Merge: xxxxxxx  yyyyyyy
Author: xxxxxxxxxxxxxxxxxxxxxxxxxx
Date:   xxxxxxxxxxxxxxxxxxxx
 
    xxxxxxxxxxxxxxxxxxxxxxxx
 
    xxxxxxxxxxxxxxxxxx

在git log中,想要撤消的提交会在上述的提交旁边显示一个代码。通过输入从左边开始的7位数,即可指定该提交。也可以从Github的网络图上确认。
此外,在git revert -m [1或2] [想要撤消的提交代码]中的[1或2],需要指定保留哪个代码,这两个代码是在上述合并的右边显示的。右边是1,左边是2。
如果不写上最后的–no-edit,在执行该命令后会打开编辑器,并要求输入提交消息。

重置git

git reset会删除指定的提交。日志也会消失。


git reset [削除したいコミットコード]  # 現在のブランチを指定したコミットに戻す
 
git reset [option] [削除したいコミットコード]  # オプションを指定 [--soft | --hard] [HEAD | HEAD^]
 

如果在上述处理之后无法正常推送,请执行git push -f。

请点击此链接以了解有关[option]的详细信息:https://www.r-staffing.co.jp/engineer/entry/20191129_1

总结

最后,我会总结要点。

git revert:指定したコミットの内容を打ち消すコミットを作成。ログは消えない。実行した後にはpushする必要がある

git reset:指定したコミットを削除。ログも消える。