arachnid arachnid - 1 month ago 10
Git Question

What is the difference between git reset and git revert?

Hi I am a newbie to git and I don't understand what is the basic difference between

git reset
and
git revert
. Does
git revert
reverts the merge being pushed ?

Answer

As far as I know, they are doing totally different thing.

git revert aimed to revert effects of previous commit. For example,

A <- B <- C 
          ^ HEAD

If I found B I committed before is wrong, and I want to "undo" its change, git-revert-ing B will cause:

A <- B <- C <- B'
               ^ HEAD

for which B' is reversing the change done in B.

git reset is more straight-forward, it is simply setting the HEAD to a certain commit,

A <- B <- C 
          ^ HEAD

git-reset-ting to B will give you

A <- B <- C 
     ^ HEAD