Git log & revert
While developing our software, we will make lots of commits. We will change, add and delete files and create many points of history. It should be then possible for us to visit these points in history, and perhaps reset our history to the specific points.
In order for us to view our commits we can run
$ git log
Two really helpful variations of this command are
$ git log --raw
where all modified files are shown, and
$ git log -p -- /some/file/path.ext
where we view all the modifications to a specific file in a reverse chronological order
We may also view a commit by running
$ git show <commit id>
Reverting a commit is also crucial. Imagine that we have just pushed a commit to production which is full of bugs (it happens, it has happened to everybody and it will continue to happen for as long as your software exists). We might need to revert this commit immediately, and we can by running
$ git revert <commit id>
Another way of tracking changes is git blame
where one may blame
a single file and view in an annotated way, each line and the corresponding commit
hash where the line was introduced. Example, blaming the index file of this jekyll
application:
$ git blame index.html
72ac450 (Barry Clark 2014-02-06 19:18:00 -0500 1) ---
^72ac450 (Barry Clark 2014-02-06 19:18:00 -0500 2) layout: default
^72ac450 (Barry Clark 2014-02-06 19:18:00 -0500 3) ---
^72ac450 (Barry Clark 2014-02-06 19:18:00 -0500 4)
e347e37f (Fotis Alexandrou 2015-03-24 02:15:01 +0200 5) <h1>Git Training</h1>
e347e37f (Fotis Alexandrou 2015-03-24 02:15:01 +0200 6) <p>
...