What is the meaning of revert this commit and roll back this commit in GitHub for Windows?

Zingam picture Zingam · Feb 23, 2013 · Viewed 35k times · Source

Github for Windows features these two commands described as:

  1. revert this commit - create a new commit that reverts the changes of this commit
  2. rollback this commit - roll back this commit leaving all changes made in this and later commits in your working directory

Could you explain the exact meaning of these two commands and how they can be used. Specifically I fail to understand what is the purpose of the second one. It makes no sense to me.

Is it possible to revert to a previous commit check it out and if I don't like it, go back to where it was initially?

This gui seems to feature a very small part of the git system but what would be a proper workflow utilizing it?

Answer

JB Nizet picture JB Nizet · Feb 23, 2013

Suppose you have a single file in your repo, and you have the following commits:

commit 1 : the file contains A
commit 2 : the file contains B
commit 3 : the file contains C

If you execute revert on commit 3, you'll have this in the repo:

commit 1 : the file contains A
commit 2 : the file contains B
commit 3 : the file contains C
commit 4 : the file contains B

And the file in your working copy will contain B as well.

If you execute roll back, you'll have this in the repo:

commit 1 : the file contains A
commit 2 : the file contains B

And the file in your working copy will be left unmodified. The file will thus contain C. It allows you to fix a small mistake and commit again, for example.