Turn off “LF will be replaced by CRLF”

   https://stackoverflow.com/questions/6500880/git-turn-off-lf-will-be-replaced-by-crlf-warning
   Needs TLDR:
   http://adaptivepatchwork.com/2012/03/01/mind-the-end-of-your-line/

   # do not convert line endings (consequently no warnings)
   git config --global --add core.autocrlf off

Show last commit title

   git log -1 --pretty=%B

   Delete last commit, keep changed files.

   https://stackoverflow.com/questions/15772134/can-i-delete-a-git-commit-but-keep-the-changes
   git reset @~

   DOES NOT WORK:
   git reset HEAD^

Recover deleted (lost) commit (after rebase [rebasing])

   git reflog
   git reset --hard [HASH]

Delete last commit, but keep the changes

   git reset @~

“git ammend” with last commit message

   git commit --amend --no-edit

Delete Remote GitHub Tags

   https://help.github.com/articles/pushing-to-a-remote/

To push tags (one way only):

   git push --tags

To delete tags on GitHub:

   git push  <REMOTENAME> :<BRANCHNAME>
   git push origin :TAGNAME

Rebase One Branch On Top of Another

   git checkout testbranch
   git rebase master # rebase the current branch on top of master

   # rebase paused due to merge conflicts

   git checkout testbranch filename # use testbranch's version of a file
   git rebase --continue
   git branch --delete master
   git branch --move master # rename current branch to master

git repack

   -a
   Instead of incrementally packing the unpacked objects, pack everything referenced into a single pack. Especially useful when packing a repository that is used for private development. Use with -d. This will clean up the objects that git prune leaves behind, but git fsck --full --dangling shows as dangling.

   Note that users fetching over dumb protocols will have to fetch the whole new pack in order to get any contained object, no matter how many other objects in that pack they already have locally.

   -d
   After packing, if the newly created packs make some existing packs redundant, remove the redundant packs. Also run git prune-packed to remove redundant loose object files.

Rebase last X commits

   git rebase -i [HASH]

logAllRefUpdates

TLDR: FALSE

   https://git-scm.com/docs/git-config

   core.logAllRefUpdates
   Enable the reflog. Updates to a ref <ref> is logged to the file "$GIT_DIR/logs/<ref>", by appending the new and old SHA-1, the date/time and the reason of the update, but only when the file exists. If this configuration variable is set to true, missing "$GIT_DIR/logs/<ref>" file is automatically created for branch heads (i.e. under refs/heads/), remote refs (i.e. under refs/remotes/), note refs (i.e. under refs/notes/), and the symbolic ref HEAD. If it is set to always, then a missing reflog is automatically created for any ref under refs/.

   This information can be used to determine what commit was the tip of a branch "2 days ago".

   This value is true by default in a repository that has a working directory associated with it, and false by default in a bare repository.

IMSM065_A3E34C440111C2CEE526B5B194B72AB65D2088F3