Git has some output that can be very helpful to people getting started with it. Once you’ve been using Git for a while, however, you may find that the advice that Git provides to help deal with certain situations just ends up taking up screen real estate. Fortunately, there is a way to turn off a number of these messages.
There are currently six settings to adjust the extra help messages that Git provides by default:
pushNonFastForward will turn off the extra help output by
git-push(1) when attempting to push a non-fast-forward without using
-f, or the
+<ref> form of a ref.
Above, we see the output of attempting to push a non-fast-forward, and below we see the output after setting
advice.pushNonFastForward. The difference is only three lines, but the output feels a lot cleaner especially if you already know how to deal with non-fast-forward pushes (merging, or forcing as appropriate).
statusHints will turn off the hints provided by
git-status(1) to help work with changed & new files in the repository.
Again, we see the command output above with the advice setting left at the default of
true. Below we can see that we save about four lines of output every time we run
git status on the command-line.
commitBeforeMerge will turn off the reminder to commit, or stash your changes if you have uncommitted changes that conflict with what you are attempting to merge.
The difference with
advice.commitBeforeMerge doesn’t save us any lines of output, but it does help visually distinguish the error message that includes the list of files, from the line telling us that Git is aborting our attempt to merge (shown below).
resolveConflict affects multiple commands, all of which share the scenario of the command aborting due to unresolved conflicts in the work tree/staging-area. The example I will show below is trying to commit before marking all conflicts as resolved.
This is another setting that can save us a couple of lines of output that don’t really help us much after we’ve done this task a couple of times.
implicitIdentity is one that I don’t personally use since I have my name and email set in my
~/.gitconfig, but can come in handy if you rely on Git automatically guessing your name and email from the system you’re on.
The output after running
git commit when Git guesses your name and email is…well…massive. If you rely on having an email generated from the FQDN of the current host, you really should turn off this advice, and save yourself a ton of wasted screen real estate.
detachedHead is quite handy if you’re comfortable working with Git in a ‘detached HEAD’ state (doubly so, if you have your shell prompt setup to help you remember if you’re currently in a detached head state or not.
Turning off the advice when entering a ‘detached HEAD’ state is another one that will end up saving huge amounts of screen real estate once you get comfortable working with this aspect of Git (especially if you have your prompt remind you)..