git常用命令

git config –(system | global | local) <section.key> <value>

配置git, system表示为系统所有用户的所有仓库配置,配置文件在/etc/gitconfig; global表示为当前用户的所有仓库配置,配置文件在~/.gitconfig; local表示为当前仓库配置,配置文件在当前仓库的 .git/config。git默认使用local的配置,其次global,再次system。常用配置项有:

  • user.name - 作者名
  • user.email - 作者邮箱
  • core.editor - 默认编辑器
  • merge.tool - 冲突解决工具

git config –list

列出所有git配置项,按system->global->local的顺序展示

git remote add origin git@github.com:bob/demo

添加远程仓库git@github.com:bob/demo, 名字是origin

git remote rm origin

删除远程仓库origin

git remote

列出所有远程仓库, 只显示名称

git remote -v

列出所有远程仓库名称及对应的url

git remote rename origin repo

把远程仓库origin的名字改为repo

git clone git@github.com:bob/demo demo

克隆远程仓库git@github.com:bob/demo到本地目录demo,如果没有传最后一个参数,则以远程仓库的名字创建新目录

git branch dev_1_0

创建分支dev_1_0

git branch dev_1_0 8187cf1

从8187cf1这个提交创建dev_1_0分支

git checkout dev_1_0

切换到dev_1_0分支

git checkout -b dev_1_0

创建并切换到新的分支dev_1_0, 相当于git branch dev_1_0和git checkout dev_1_0

git checkout – a/b.c

从暂存区中检出文件a/b.c,相当于将文件a/b.c恢复到最后一个提交的版本

git checkout – .

从暂存区中检出当前目录下的所有文件,相当于将当前目录下的所有文件恢复到最后一个提交的版本

git checkout 8187cf1 – a/b.c

从8187cf1这个提交中检出文件a/b.c,相当于将文件a/b.c恢复到8187cf1这个版本

git reset (git reset –mixed)

把本地staged的修改变为unstaged

git reset –hard

删除本地staged/unstaged的修改

git clean -df

删除本地untracked的文件和目录

git rm –cache a.txt

把a.txt的修改从staged变为unstaged

git diff

查看staged/unstaged的修改

git commit –amend

修改commit log

git blame a/b.c

查看文件a/b.c每行内容的修改者

git log a/b.c

查看文件a/b.c的修改历史摘要

git log -p a/b.c

查看文件a/b.c的修改历史,包含每次修改的内容

git log –author=Bob

查看Bob的提交记录

git show 8187cf1

查看8187cf1这个提交的修改内容

git branch –contains 8187cf1

查看所有包含8187cf1的本地分支

git branch -r –contains 8187cf1

查看所有包含8187cf1的远程分支

git branch -a –contains 8187cf1

查看所有包含8187cf1的分支,包括远程分支和本地分支

git cherry-pick 8187cf1

把8187cf1的修改应用到当前分支

git reflog

记录所有对HEAD的历史操作记录,可用配合git reset命令进行恢复

Written on January 23, 2018
View: