git cheat sheet

function remember_me() {
  # save username/password
  git config credential.helper store
  git fetch
}

function branch()  {
  # status
  git status
  # list all branch
  git branch -a
  # create
  git branch $branch
  # checkout
  git checkout $branch
  # push new branch
  git push -u origin $branch
  # delete
  git branch -d $branch
  # Merge $branch1 to $branch2
  git checkout $branch2
  git merge $branch1
 
  # create & checkout based on current
  git checkout -b $branch
  # create & checkout branch2 from branch1
  git checkout -b $branch2 $branch1
  # create/reset & checkout
  git checkout -B $branch
}

function changelist() {
  # add file
  git add $file
  # add all *.txt file
  git add *.txt
  # add all file
  git add -A

  # reset current HEAD
  git reset
  # resets the index and working tree
  git reset --hard

  # commit
  git commit
  # commit with comments
  git commit -m 'Comments'
  # commit all changed
  git commit -a -m 'Comments'

  # push
  git push
  # push with upstream reference
  git push -u origin $branch
}

function config() {
  # list config
  git config -l
  # Set username and email
  git config --global user.name "$username"
  git config --global user.email "$email"
}

function diff() {
  # check your working tree
  # changes in the working tree not yet staged for the next commit
  git diff
  # changes between the index and your last commit
  git diff --cached
  # changes in the working tree since your last commit
  git diff HEAD
  
  # comparing with arbitrary commits
  git diff $file
  git diff HEAD -- $file
  # compare with the version before the last commit
  git diff HEAD^ -- $file
  # ...
  git diff HEAD^^ -- $file

  # compare branch
  git diff $branch1 $branch2

  # compare commit
  git diff $commit1 $commit2
  git diff $commit1 $commit2 $file
}

function git_flow() {
  # init
  git flow init  
  # start flow
  git flow feature start $feature
  # finish flow
  git flow feature finish $feature
}

function help() {
  git help
  git help checkout -h
  git help checkout --help
}

function history() {
  git log
  git log -all $file
  git log --oneline
}

function patch() {
  # apply a series of patches from a mailbox when the patch does not apply
  # cleanly, fall back on 3-way merge if the patch records the identity of
  # blobs it is supposed to apply to and we have those blobs available locally  
  git am -3 patch.mbox
  # prepare a patch for other
  git format-patch origin  
}

function rebase() {
  # rebase
  # if you want to reorder the last 5 commits, such that what was HEAD~4
  # becomes the new HEAD. To achieve that, you would call git rebase like this
  # 
  # DANGER: do not rebase pushed changes
  git rebase -i HEAD~5
}

function repository() {
  # init
  git init
  git add .

  # clone from existing
  git clone ~/existing/repo ~/new/repo
  # clone from url
  git clone https://host.org/project.git
}

function revert() {
  # with history
  git revert $commitId

  # without history
  git reset --hard HEAD~1
  # change comments
  git commit --amend
}

function stash() {
  # stash changes
  git stash
  # stash with comments
  git stash push -m 'Comments'

  # list stash
  git stash list

  # apply stash
  git stash pop
  git stash apply stash@{0}

  # show stash
  git stash show stash@{0}
  
  # delete
  git stash drop stash@{0}

  # clear
  git stash clear
}

function tag() {
  # tag
  git tag $tagName  
  # push tag
  git push origin $tagName  
  # delete local tag
  git tag --delete $tagName
  # delete remote tag
  git push origin :$tagName
  # or
  git push --delete origin $tagName
}

你可能感兴趣的:(git cheat sheet)