常用命令
显示区别
git diff <file> # 比较当前文件和暂存区文件差异
git diff <$id1> <$id2> # 比较两次提交之间的差异
git diff <br1>..<br2> # 在两个分支之间比较
git diff --staged # 比较暂存区和版本库差异
git diff --cached # 比较暂存区和版本库差异
git diff --stat # 仅仅比较统计信息
查看内容
git show # 显示最近一次提交的内容
git show $id # 显示该commitId所提交的内容
提交到暂存区
git add <file> # 将工作文件修改提交到本地暂存区
git add . # 将所有修改过的工作文件提交暂存区
提交到版本库
git ci -am "comments" #提交暂存区文件至当前分支
git ci --amend # 修改最后一次提交记录
删除文件
git rm <file> # 从版本库中删除文件
git rm <file> --cached # 从版本库中删除文件,但不删除文件
抛弃工作区修改
git co -- <file> # 抛弃工作区单个文件修改
git co . # 抛弃工作区所有修改
恢复
git reset <file> # 从暂存区恢复单个文件到工作区
git reset -- . # 从暂存区恢复所有文件到工作区
git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建了一次提交对象
git revert HEAD # 恢复最后一次提交的状态
查看提交记录
git loggit log <file> # 查看该文件每次提交记录
git log -p <file> # 查看每次详细修改内容的diff
git log -p -2 # 查看最近两次详细修改内容的diff
git log --stat # 查看提交统计信息
git blame target file # 查看文件的最后修改者
分支管理
查看分支
git br -r # 查看远程分支
git br <new_branch> # 创建新的分支
git br -v # 查看各个分支最后提交信息
git br --merged # 查看已经被合并到当前分支的分支
git br --no-merged # 查看尚未被合并到当前分支的分支
切换分支
git remote prune #更新本地的分支列表
git remote prune origin #更新远程的分支列表
切换分支
git co <branch> # 切换到某个分支
git co -b <new_br> # 创建新的分支,并且切换过去
git co -b <new_br> <br> # 基于branch创建新的new_branch
创建分支
git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
git co $id -b <new_br> # 把某次历史提交记录checkout出来,创建成一个分支
删除分支
git br -d <branch> # 删除某个分支
git br -D <branch> # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
合并分支
git merge <branch> # 将branch分支合并到当前分支
git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
rebase分支
git rebase master <branch> # 将master rebase到branch,相当于:
更多Git操作详见 http://robbinfan.com/blog/34/git-common-command
显示区别
git diff <file> # 比较当前文件和暂存区文件差异
git diff <$id1> <$id2> # 比较两次提交之间的差异
git diff <br1>..<br2> # 在两个分支之间比较
git diff --staged # 比较暂存区和版本库差异
git diff --cached # 比较暂存区和版本库差异
git diff --stat # 仅仅比较统计信息
查看内容
git show # 显示最近一次提交的内容
git show $id # 显示该commitId所提交的内容
提交到暂存区
git add <file> # 将工作文件修改提交到本地暂存区
git add . # 将所有修改过的工作文件提交暂存区
提交到版本库
git ci -am "comments" #提交暂存区文件至当前分支
git ci --amend # 修改最后一次提交记录
删除文件
git rm <file> # 从版本库中删除文件
git rm <file> --cached # 从版本库中删除文件,但不删除文件
抛弃工作区修改
git co -- <file> # 抛弃工作区单个文件修改
git co . # 抛弃工作区所有修改
恢复
git reset <file> # 从暂存区恢复单个文件到工作区
git reset -- . # 从暂存区恢复所有文件到工作区
git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建了一次提交对象
git revert HEAD # 恢复最后一次提交的状态
查看提交记录
git loggit log <file> # 查看该文件每次提交记录
git log -p <file> # 查看每次详细修改内容的diff
git log -p -2 # 查看最近两次详细修改内容的diff
git log --stat # 查看提交统计信息
git blame target file # 查看文件的最后修改者
分支管理
查看分支
git br -r # 查看远程分支
git br <new_branch> # 创建新的分支
git br -v # 查看各个分支最后提交信息
git br --merged # 查看已经被合并到当前分支的分支
git br --no-merged # 查看尚未被合并到当前分支的分支
切换分支
git remote prune #更新本地的分支列表
git remote prune origin #更新远程的分支列表
切换分支
git co <branch> # 切换到某个分支
git co -b <new_br> # 创建新的分支,并且切换过去
git co -b <new_br> <br> # 基于branch创建新的new_branch
创建分支
git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
git co $id -b <new_br> # 把某次历史提交记录checkout出来,创建成一个分支
删除分支
git br -d <branch> # 删除某个分支
git br -D <branch> # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
合并分支
git merge <branch> # 将branch分支合并到当前分支
git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交
rebase分支
git rebase master <branch> # 将master rebase到branch,相当于:
git co <branch> && git rebase master && git co master && git merge <branch>
git bash设置别名:http://blog.youkuaiyun.com/zhang31jian/article/details/41011313
更多Git操作详见 http://robbinfan.com/blog/34/git-common-command