#Getting Started with Git
git init
or
git clone url
git config --global color.ui true
git config --global push.default current
git config --global core.editor vim
git config --global user.name "John Doe"
git config --global user.email [email protected]
git config --global diff.tool meld
# See the list of all local branches
git branch
# Switch to existing local branch
git checkout branchname
# Checkout current branch into a new branch, named new-branch-name
git chekcout -b new-branch-name
# Merge branch-name into the current branch
git merge branchname
# Soft branch delete, will complain if the branch is not merged
git branch -d branchname
# Hard branch delete, will not complain about nothing. Like rm -rf in bash
git branch -D branchnameUpdating Current Branch
Standard Flow
git log
git log
git log --pretty=format:"%h %s" --graph
git status
git status
git status -s
git add
git add filename
git add .
git add '*.txt'
git rm
git rm filename
git commit
git commit
git commit -m
git commit --amend
Advanced
git reset
git reset
git reset --hard HEAD
git reset tag
git stash
git stash
git stash pop
git checkout filename #Goes back to the way it wasgit diff
git diff HEAD
git diff branch name
git difftool -d
git tag
git push git push git push -u origin master #The -u tells Git to remember the parameters git push origin branchname git pull origin branchname git remote git remote -v git remote add origin https://gitremote git fetch git fetch git fetch -p
Try Github lernGitBranching http://pcottle.github.io/learnGitBranching/?NODEMO Pro Git http://git-scm.com/book
Source Tree Command Line Setup https://answers.atlassian.com/questions/151279/sourcetree-command-line-option tig brew install tig gitk
Meld - brew install meld
Open Diff
p4v Merge - http://git-scm.com/book/en/Customizing-Git-Git-Configuration#External-Merge-and-Diff-Tools
InteliJ