Susan Potter
snippets: Created / Updated

My .gitconfig & .tigrc files

This started as my first ~/.gitconfig file and is probably out of date when you read it.

[user]
  name = Susan Potter # make sure you change this
  email = me@susanpotter.net # make sure you change this
[color]
  diff = auto
  status = auto
  branch = auto
[diff]
  rename = copy
  color = auto
[apply]
  whitespace = strip
[pager]
  color = true
[status]
  color = auto
[branch]
  autosetuprebase = always
[alias]
  co = "checkout"
  ci = "commit"
  ciall = "commit -a -v"
  unmerge = "reset --hard ORIG_HEAD"
  lsbr = "branch -a" # list all branches, even remote ones
  mkbr = "branch" # create branch if you specify a branch name after it, e.g. git mkbr upgrading_rails
  # remove branch named after it, e.g. git rmbr upgrading_rails
  rmbr = "branch -d"
  # rename branch from one name to another
  mvbr = "branch -m"
  #
  track = "branch --track"
  log = "log -p"
  lol = "log --graph --decorate --pretty=oneline --abbrev-commit"
  lola = "log --graph --decorate --pretty=oneline --abbrev-commit --all"
  # list remote repositories
  lsrem = "remote"
  # list all tags, to keep commands consistent, e.g. git lstag
  lstag = "tag -l"
  # list unmerged branches
  lsunmerged = "branch --no-merged"
  # create a new tag based on specified commit
  mktag = "tag -a"
  # remove existing tag by name
  rmtag = "tag -d"
  # rename tag from one name to another
  mvtag = "tag -m"
  # create new remote repository for project
  mkrem = "remote add"
  # initialize all submodules
  modinit = "submodule init"
  # update all submodules
  modup = "submodule update"
  # show status of all submodules
  modst = "submodule status"
  # add new submodule, i.e. git modadd module-name url
  modadd = "submodule add"
  # push local committed changes to rubyforge and origin (usually GitHub)
  osspush = !git push rubyforge master && git push origin master
  # pull changes from rubyforge and origin (usually GitHub)
  osspull = !git pull rubyforge master && git pull origin master
  # sync (pull then push) from rubyforge and origin (usually GitHub)
  osssync = !git osspull && git osspush
  # show last 15 log entries
  recentlog = "log -n 15"
  # search alias
  search = "log --pretty=short -S"
  # short log
  shlog = "log --oneline --decorate"
  # snap RPEO
  snap = "clone --depth 1"
  # show status, keep same as svn command I used most frequently
  st = "status --porcelain"
  # another alias for status that some scripts might use
  stat = "status --porcelain"
  # fetch and rebase from svn repository
  spull = !git svn fetch && git svn rebase
  # push keeping each local commit as atomic.
  spush = !git svn dcommit
  # tracking push
  tpush = "push -u"
  # pull & update submodules at once - assumed you are on tracking local branch
  up = !git pull && git submodule update
  # word diff
  wdiff = "diff --word-diff"
  # prints out the branches a commit is on
  whbr = "branch -a --contains"
  # prints commits from a branch are already present upstream
  whci = "cherry -v"
  # prints out the tags a commit is a part of
  whtag = "name-rev --name-only"
[rerere]
  enabled = 1
[merge]
  tool = gvimdiff
  conflictStyle = diff3
[url "https://github.com/"]
  insteadOf = "gh:"
[url "git@github.com:"]
  insteadOf = "git@gh:"
set show-author = abbreviated
set show-date = relative
set show-rev-graph = yes
set show-refs = yes
set show-line-numbers = yes
set line-number-interval = 5
set tab-size = 2
set commit-encoding = "UTF-8"

If you enjoyed this content, please consider sharing this link with a friend, following my GitHub, Twitter/X or LinkedIn accounts, or subscribing to my RSS feed.