[译]git revert

git revert

git revert用来撤销一个已经提交了的快照. 但不是从项目历史中移除这个commit, 而是生成一个新的commit, 老的commit还是保留在历史项目里面的. 这样做的好处是防止了项目丢失历史.

用法

git revert <commit>

生成一个新的commit, 撤销老的<commit>的所有修改(注意了这个<commit>之后的commit的修改还在, 你只是撤销了这一个<commit>的修改), 老的commit在项目历史中还是可见的.

 

讨论

当你想撤销项目中某一个完整的commit的时候可以使用revert. 

Reverting vs Resetting

git revert是撤销某个单一的commit-revert不是通过删除一系列的commit回到项目的某个commit之前的状态, 而是新增一个commit.

revert比起reset来说有两个优点. 第一, revert不会修改项目的历史, 是一个安全的操作. 第二, git revert可以作用于项目历史中的任意一点, git reset只能作用于当前commit之前的commit. 例如, 如果你想使用reset撤销一个老的commit, 你将删除这个老的commit之后的所有commit, 然后重现commit这些commit. 

例子

下面的例子简单的演示了git revert的用法. 提交一个快照, 然后立即使用revert撤销他.

# Edit some tracked files

# Commit a snapshot
git commit -m "Make some changes that will be undone"

# Revert the commit we just created
git revert HEAD

  

原文地址:https://www.cnblogs.com/irocker/p/git-revert.html