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