git difftool index.htmlIf you just say diff instead you will get lots and lots of spaghetti text. By saying difftool you are telling Git that you are a civilized programmer and want a stylish GUI to display your two diff views in.
git difftool 37528a6 -- index.html.
git difftool 37528a6..ee82721. By not saying the name of the file, you are telling Git you trust her to show a whole bunch of files that have changed. When you say something like
git difftool 37528a6..ee82721Git will often say something like "Do you wish to see 1 of 7, Y/n? Do you wish to see 2 of 7, Y/n..." Et cetera. Each one of those will open up one at a time in Beyond Compare.
git difftool 37528a6..ee82721 -- readMe.md
git difftool 534f28a -- index.htmlBy only telling Git one hash number, I tell Git to assume that I want to diff the 534f28a versus my most recent save to my tree (not my most recent commit to the repo). This tells git "Open Beyond Compare, which I previously set as my difftool option" and then it tells which old commit to look at (534f28a), and finally, if you don't tell it which file, it may give you everything and the kitchen sink. So you use a double dash to keep the filename separate from the rest of the line, and type the filename. Mine was index.html.
git SOMECOMMAND --helpThis built-in Git documentation is excellent and eclipses most supplements for searchability and clarity, I think. I admit that Linux-man-pages have a bad rep. This is not that kind of man page.
man gitdiffcoreyou will get a pretty nice help file. Search terms in that file by opening it, typing a simple slash and the word you want to see -- and followed by an 'm' to skip to the next occurance of the word. Type 'h' for a list of commands to bop around inside the help file. To quit the manpage help file type 'q'.
git log --helpall kinds of helpful syntax advice. For example, an explanation of when to use a floating double dash (not touching any word) syntax in Git. Below:
[--] <path>... Show only commits that are enough to explain how the files that match the specified paths came to be. See History Simplification below for details and other simplification modes. Paths may need to be prefixed with -- to separate them from options or the revision range, when confusion arises.
git log --helpalso describes the syntax in git log for how to control the length and format of the log. From the man page:
--notes[=<treeish>] Show the notes (see git-notes(1)) that annotate the commit, when showing the commit log message. This is the default for git log, git show and git whatchanged commands when there is no --pretty, --format, or --oneline option given on the command line.