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
}
网友评论