johnallen3d
6/13/2012 - 1:04 PM

NOTES: Advanced Git Training by Github.com

NOTES: Advanced Git Training by Github.com

General

  • HEAD current commit on current branch

  • git log

    -1 : most recent one (1)

    --stat : shows files changed in commit

    --patch : shows differences in text

    --pretty=oneline : flattens on t one line

    --pretty=raw : more detail on commits (tree etc)

    --graph : shows history graph

  • git commmit --ammend

changes commit history (add changes and/or modify message)

  • git reflog

show full history including rebased, modified, deleted commits etc (60 days)

  • git diff

    --color-words : shows only word changes in different colors --word-diff : makes word diffs machine parsable

  • git reset HEAD@{3}

    --hard : changes current head to back three commits (can lose files) --mixed : changes head, blows away staging (not touching working tree) --soft : changes only head

  • git reset --hard

backs out current changes in working tree

  • git revert [hash]

creates a new commit that removes a prior commit, use after push instead of rebase

  • git ls-tree [hash-index]

show tree of a commit

  • git cat-file -p [hash-index]

pretty print content of commit

  • git config --global alias.lol "log --pretty=oneline --graph"

adds an alias for a one line log with graph (git lol)

  • git rev-parse HEAD

show sha of indicated commit

  • git push --prune

delete all upstream branches that have been deleted locally

##REBASE

  • git rebase -i HEAD~4 OR HEAD^^^^ OR HEAD@{4}

all mean 4 prior to head

  • git commit --ammend

    --ammend : when dropping an edit into a rebase, make changes, add them then ammend

  • git rebase --continue

    --continue : finishes rebase, allows for editing of commit message

  • git pull --rebase

rebases the pull into current branch

  • git config branch.autosetuprebase true

pull now does pull --rebase