git checkout -b feature-announcement origin/feature-announcement 检出远程分支到本地
git branch --set-upstream-to=origin/feature/evaluate4 feature/evaluate4 跟踪信息
git branch -D feature-announcement 删除分支
git checkout develop 切换分支到develop
git pull --rebase 拉取分支
git status 显示当前区域状态
git branch 显示本地分支
git branch -r 显示远程分支
git log 查看日志
git commit -m "desc"
如果希望省略 add 过程而直接提交所有跟踪的文件,可以给 commit 命令加上-a选项。
git commit -a -m "desc" 暂存区到本地仓库
git add * 工作区文件加入暂存区
git push 主机名(origin) 本地分支:远程分支
git remote prune origin 删除掉没有与远程分支对应的本地分支
git fetch -p 在fetch之后删除掉没有与远程分支对应的本地分支
git fetch -p 在fetch之后删除掉没有与远程分支对应的本地分支
git reset --hard <COMMIT_ID> 代码回到某个版本,取消pull纪录
git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug, 先stash, 使返回到自己上一个commit,
git stash pop 改完bug之后再stash pop, 继续原来的工作。
git reset revert http://www.360doc.com/content/16/0610/17/6828497_566540347.shtml
Merge
将master分支合并到feature分支最简单的办法就是用下面这些命令:
git checkout feature
git merge master
或者,你也可以把它们压缩在一行里。
git merge master feature
Rebase
作为merge的替代选择,你可以像下面这样将feature分支并入master分支:
git checkout feature
git rebase master
它会把整个feature分支移动到master分支的后面,有效地把所有master分支上新的提交并入过来。但是,rebase为原分支上每一个提交创建一个新的提交,重写了项目历史,并且不会带来合并提交。
.gitconfig
[user]
name = 11
email = 11@163.com
[core]
excludesfile = /Users/nijianfeng/.gitignore_global
editor = /usr/bin/vim
[difftool "sourcetree"]
cmd = opendiff "$LOCAL" "$REMOTE"
path =
[mergetool "sourcetree"]
cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"
trustExitCode = true
[alias]
co = checkout
br = branch -avv
ci = commit
st = status
l = log --oneline --decorate -12
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --
rl = reflog --pretty=format:'%Cred%h%Creset %Cgreen(%cr)%Creset %gs %C(bold blue)<%an>%Creset %s -%C(yellow)%d%Creset'
[diff]
tool = bc3
[difftool]
bc3 = trustExitCode
[merge]
tool = bc3
[mergetool]
bc3 = trustExitCode