注:
文中“所有文件”的含义为:指定目录以及子目录下的所有文件与目录。
文中“fe0eeda6”的含义为:执行git commit时,自动产生的commit id号码,此id号码可以通过git log进行查看。
1.git(显示、设置git信息)
格式:
git [--version] [--exec-path[=<path>]] [--html-path] [-p|--paginate|--no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [-c <name>=<value>] [--help] <command> [<args>]
举例:
git --version #显示git版本号,比如:git version 1.7.1
git --help #显示帮助信息,并列出常用命令
git --help -a #显示帮助信息,并列出所有命令
2.git init(初始化git仓库)
格式:
git init [-q | --quiet] [--bare] [--template=<template_directory>] [--shared[=<permissions>]] [directory]
举例:
git init #在代码包的根目录执行此命令,就可以在此目录下新建一个.git的目录,以初始化git仓库
3.git add(添加文件、目录到git仓库)
格式:
git add [-n] [-v] [--force | -f] [--interactive | -i] [--patch | -p] [--edit | -e] [--all | [--update | -u]] [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--] [<filepattern>…]
举例:
git add main.cpp #将当前目录下的main.cpp文件添加到git仓库
git add main.log -f #将当前目录下的main.log文件强制添加到git仓库,无论是否被.gitignore所忽略
git add testDirs #将当前testDirs目录下的所有文件添加到git仓库
git add . #将当前目录下所有修改或新添加的文件添加到git仓库
git add -u #将当前git仓库中所有修改或删除的文件添加到git仓库
git add -u testDirs #基本同上,只将testDirs目录下修改或删除的文件添加到git仓库
git add -A #此选项与-u类似,只是除了包括修改或删除的文件外,还有新添加的文件。
4.git rm(删除git仓库中的文件、目录)
格式:
git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>…
举例:
git rm main.cpp #删除git仓库中当前目录下的main.cpp文件
git rm -rf testDirs #删除git仓库中当前testDirs目录下的所有文件
5.git mv(移动、重命名git仓库中的文件、目录)
格式:
git mv <options>… <args>…
举例:
git mv test1.txt test2.txt #将test1.txt文件重命名为test2.txt
git mv test1.txt testDirs #将test1.txt文件移动到testDirs目录下
6.git commit(将修改提交到git仓库)
格式:
git commit [-a | --interactive] [-s] [-v] [-u<mode>] [--amend] [--dry-run] [(-c | -C | --fixup | --squash) <commit>] [-F <file> | -m <msg>] [--reset-author] [--allow-empty] [--allow-empty-message] [--no-verify] [-e] [--author=<author>] [--date=<date>] [--cleanup=<mode>] [--status | --no-status] [-i | -o] [--] [<file>…]
举例:
git commit -m "change information" main.cpp #将当前目录下main.cpp文件的修改提交到git仓库
git commit -m "change information" testDirs #将当前testDirs目录下的所有文件的修改提交到git仓库
git commit -m "change information" -a #将当前目录下的所有文件的修改提交到git仓库
git commit --dry-run #显示当前项目的文件状态,包括哪些文件已修改、哪些文件未加入到git管理中,此命令并不会真正提交修改。此命令的返回信息与git status命令的结果类似。
git commit --amend #修改最后一次提交,包括文件与注释
注:执行add、rm、mv等操作只是缓存了修改,并没有真正提交到git仓库,需要执行commit才会真正提交。
7.git tag(操作git标签)
格式:
git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>] <tagname> [<commit> | <object>]
git tag -d <tagname>…
git tag [-n[<num>]] -l [--contains <commit>] [<pattern>]
git tag -v <tagname>…
举例:
git tag #列出当前git仓库的所有git标签
git tag -l 'VERSION-V1.*' #列出当前git仓库的所有以VERSION-V1.开头的git标签
git tag VERSION-V1.0 #在当前的代码状态下新建一个名为VERSION-V1.0的git标签,用以标识某个代码阶段,此为轻量级标签
git tag VERSION-V1.0 -f #替换已经存在的git标签,如果VERSION-V1.0不存在,则创建之
git tag VERSION-V1.0 -d #删除已经存在的名为VERSION-V1.0的git标签
git tag VERSION-V1.0 fe0eeda6 #在fe0eeda6的提交状态下,新建名为VERSION-V1.0的git标签
git tag -a VERSION-V1.0 -m 'my version 1.0' #在当前的代码状态下新建一个名为VERSION-V1.0的git标签,此为含注释的标签
8.git branch(操作git分支)
格式:
git branch [--color[=<when>] | --no-color] [-r | -a] [-v [--abbrev=<length> | --no-abbrev]] [(--merged | --no-merged | --contains) [<commit>]]
git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
git branch (-m | -M) [<oldbranch>] <newbranch>
git branch (-d | -D) [-r] <branchname>…
举例:
git branch #列出当前git仓库中所有本地分支,并显示当前所处的分支
git branch -r #列出当前git仓库中的远程分支
git branch -a #列出当前git仓库中的所有分支,包括本地分支与远程分支
git branch testBr #在当前分支的基础上,新建testBr分支
git branch testBr oldBr #在oldBr分支的基础上,新建testBr分支
git branch -d testBr #删除testBr分支,此命令执行的前提是testBr分支中的所有改动已经合并到当前分支中
git branch -D testBr #强制删除testBr分支,而并不考虑此分支中的任何改动
git branch -m oldBr newBr #将oldBr分支重命名为newBr
注:git仓库创建之后,会有一个默认的master分支,所以无论什么情况下,git仓库始终处在某一个分支下。
9.git checkout(切换git分支)
格式:
git checkout [-q] [-f] [-m] [<branch>]
git checkout [-q] [-f] [-m] [[-b|-B|--orphan] <new_branch>] [<start_point>]
git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>…
git checkout --patch [<tree-ish>] [--] [<paths>…]
举例:
git checkout testBr #将当前git仓库切换到testBr分支
git checkout -b testBr VERSION-V1.0 #导出VERSION-V1.0标签并以此创建一个分支,然后切换到新生成的testBr分支
git checkout -b testBr fe0eeda6 #导出某次提交并以此创建一个分支,并切换到新生成的testBr分支
git checkout fe0eeda6 main.log #导出某次提交状态下的指定文件或目录
10.git clone(克隆git仓库)
格式:
git clone [--template=<template_directory>] [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror] [-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>] [--depth <depth>] [--recursive|--recurse-submodules] [--] <repository> [<directory>]
举例:
git clone /home/chen/prom #克隆本机/home/chen/prom目录下的git仓库到当前目录
git clone /home/chen/prom -b testBr #克隆本机/home/chen/prom目录下的git仓库到当前目录,并切换到testBr分支
git clone /home/chen/prom --branch testBr #同上
git clone /home/chen/prom -b testBr prom-new #同上,并将prom目录重命名为prom-new
git clone ssh://chen@100.130.100.90:222/home/chen/prom #克隆远程主机上的git仓库;其中远程主机的ip地址为100.130.100.90,git仓库存放在其/home/chen/prom目录下;本例采用ssh方式进行远程登录,ssh的端口号为222,并且采用chen用户身份进行登录
11.git log(显示git仓库的修改记录)
格式:
git log [<options>] [<since>..<until>] [[--] <path>…]
举例:
git log #查看当前分支下,整个git仓库所有文件的修改记录
git log test.c #查看test.c文件的修改记录
git log -- test.c #同上
git log src/mk.pl #查看src/mk.pl文件的修改记录
git log src #查看src目录下所有文件的修改记录
git log . #查看当前目录下所有文件的修改记录
git log --all #显示所有分支下的修改记录,git log命令默认只会显示当前分支下的修改记录
git log -3 #只显示最后n次提交的修改记录,此例中为3
git log -3 -p #只显示最后n次提交的修改记录以及各提交间的内容差异,此例中为3
git log --since=2011.11.16 #查看当前分支下,整个项目所有文件在2011.11.16当日以及之后的修改记录
git log --after=2011.11.16 #同上
git log --until=2011.11.16 #查看当前分支下,整个项目所有文件在2011.11.16之前的修改记录
git log --before=2011.11.16 #同上
git log --since="2 days" #查看最近2天的修改记录
git log --since="6 hours" #查看最近6小时的修改记录
git log --since="30 minutes" #查看最近30分钟的修改记录
git log --since="500 seconds" #查看最近500秒的修改记录
git log --author=username #查询指定作者的提交记录
12.git show(查看git提交信息)
格式:
git show [options] <object>…
举例:
git show #查看最后一次提交的文件更改信息
git show fe0eeda6 #查看某次提交的文件更改信息
git show VERSION-V1.0 #查看VERSION-V1.0标签时的文件更改信息
13.git clean(清理git仓库)
格式:
git clean [-d] [-f] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…
举例:
git clean -df #删除当前目录下未在git中管理的所有文件及目录
git clean -dfx #删除当前目录下未在git中管理的所有文件及目录,包括被git忽略的文件,例如:.gitignore文件中定义的文件
git clean -dn #显示将要删除的当前目录下未在git中管理的文件及目录,而并不执行删除
14.git reset(恢复git仓库)
格式:
git reset [-q] [<commit>] [--] <paths>…
git reset --patch [<commit>] [--] [<paths>…]
git reset [--soft | --mixed | --hard | --merge | --keep] [-q] [<commit>]
举例:
git reset --hard #还原所有的本地修改,将git仓库恢复到当前的最新状态
git reset --hard VERSION-V1.0 #还原所有的本地修改,将git仓库恢复到VERSION-V1.0标签时的状态
git reset --hard fe0eeda6 #还原所有的本地修改,将git仓库恢复到fe0eeda6提交时的状态
git reset --hard HEAD~1 #删除当前分支最近的1次提交,包括历史记录和所涉及的文件改动。要删除最近3次的提交,就将1换成3即可,以此类推。
git reset #仅还原本地git仓库中所有的index信息,例如执行的git add、git rm、git mv等操作将被还原。此命令并不会影响文件的内容
git reset -- a.txt #同上,仅还原特定文件的状态
15.git pull(将git服务器的更新同步到本地并自动合并)
格式:
git pull [options] [<repository> [<refspec>…]]
举例:
git pull #将git服务器所有分支的代码同步到本地仓库,此命令是git fetch和git merge的复合命令。
git pull origin testBr #将git服务器testBr分支的代码同步到本地仓库的当前分支
git pull --rebase #此命令是git fetch和git rebase的复合命令
16.git push(推送到git服务器)
格式:
git push [--all | --mirror | --tags] [-n | --dry-run] [--receive-pack=<git-receive-pack>] [--repo=<repository>] [-f | --force] [-v | --verbose] [-u | --set-upstream] [<repository> [<refspec>…]]
举例:
git push #将本地代码仓库所有分支的修改推送到git服务器
git push origin VERSION-V1.0 #将本地代码仓库的名为VERSION-V1.0的tag推送到git服务器
git push --tags #将本地代码仓库的所有tag推送到git服务器
git push origin testBr #将本地代码仓库当前分支的修改推送到git服务器的testBr分支,如果远程分支不存在,则创建之
17.git merge(合并git分支)
格式:
git merge [-n] [--stat] [--no-commit] [--squash] [-s <strategy>] [-X <strategy-option>] [--[no-]rerere-autoupdate] [-m <msg>] <commit>…
git merge <msg> HEAD <commit>…
git merge --abort
举例:
git merge testBr #将testBr分支的代码合并到当前分支下
git merge --no-ff testBr #将testBr分支的代码合并到当前分支下,但是会生成新的commitId
18.git status(查看git仓库的状态)
格式:
git status [<options>…] [--] [<pathspec>…]
举例:
git status #查看git仓库的状态,例如哪些文件被修改、删除或添加
git status testDirs #查看git仓库中的testDirs文件或目录的状态,例如哪些文件被修改、删除或添加
19.git diff(查看git仓库中文件的变化)
格式:
git diff [options] [<commit>] [--] [<path>…]
git diff [options] --cached [<commit>] [--] [<path>…]
git diff [options] <commit> <commit> [--] [<path>…]
git diff [options] [--no-index] [--] <path> <path>
举例:
git diff #查看整个git仓库中所有文件的修改,此命令会显示所有被修改的文件及其变化
git diff test.c #查看git仓库中test.c文件的修改,如未修改则不显示内容
git diff testDirs #查看git仓库中testDirs目录下所有文件的修改,如未修改则不显示内容
git diff VERSION-V1.0 #查看git仓库中所有文件与VERSION-V1.0标签时的文件修改
git diff fe0eeda6 #查看git仓库中所有文件与fe0eeda6提交时的文件修改
git diff VERSION-V1.0 fe0eeda6 #查看git仓库中所有文件在VERSION-V1.0与fe0eeda6提交间的文件修改
git diff -a #查看整个git仓库中所有文件的修改,此命令会将二进制文件当做文本文件处理
git diff -a > diff.patch #作用同上,只是将所有反馈信息都写入到diff.patch文件中。此操作适合于制作patch,包含文本文件与二进制文件的所有改动信息
git diff --cached -a > diff.patch #将已缓存的文件改动信息都写入到diff.patch文件中,其他同上
20.git format-patch(生成patch文件)
格式:
git format-patch [-k] [(-o|--output-directory) <dir> | --stdout] [--no-thread | --thread[=<style>]] [(--attach|--inline)[=<boundary>] | --no-attach] [-s | --signoff] [--signature=<signature> | --no-signature] [-n | --numbered | -N | --no-numbered] [--start-number <n>] [--numbered-files] [--in-reply-to=Message-Id] [--suffix=.<sfx>] [--ignore-if-in-upstream] [--subject-prefix=Subject-Prefix] [--to=<email>] [--cc=<email>] [--cover-letter] [<common diff options>] [ <since> | <revision range> ]
举例:
git format-patch -1 #将最近1次的提交做成patch文件,此命令会在当前目录下生成0001-*.patch的文件
git format-patch -2 #将最近2次的提交各自做成patch文件,此命令会在当前目录下生成0001-*.patch、0002-*.patch的文件。如果参数改为3,则会生成3个patch文件,以此类推
21.git archive(将项目文件打包)
格式:
git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>] [-o | --output=<file>] [--worktree-attributes] [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish> [<path>…]
举例:
git archive --format=tar --prefix=sw-V1.0/ VERSION-V1.0 | gzip > sw-VERSION-V1.0.tar.gz #将整个git仓库的VERSION-V1.0版本状态下的所有文件打包压缩为sw-VERSION-V1.0.tar.gz,压缩包的顶级目录为sw-V1.0
git archive --prefix=sw-V1.0/ VERSION-V1.0 | gzip > sw-VERSION-V1.0.tar.gz #同上,archive命令会自动识别归档文件的类型,默认为tar格式
git archive VERSION-V1.0 | gzip > sw-VERSION-V1.0.tar.gz #基本同上,只是压缩包没有另外指定顶级目录
git archive HEAD | gzip > sw-HEAD.tar.gz #将当前分支的最新版本,打包压缩为sw-HEAD.tar.gz
git archive HEAD -o sw-HEAD.zip #将当前分支的最新版本,打包压缩为sw-HEAD.zip
22.git whatchanged(显示每次提交的文件修改情况)
格式:
git whatchanged <option>…
举例:
git whatchanged #显示每次提交的文件修改情况,其中修改文件标示为M,删除文件标示为D,添加文件标示为A
git whatchanged fe0eeda6 #显示fe0eeda6提交以及之前的文件修改情况,其他同上
git whatchanged VERSION-V1.0..fe0eeda6 #显示VERSION-V1.0与fe0eeda6提交之间的文件修改情况,其他同上
23.git update-index(修改git仓库的索引信息)
格式:
git update-index [--add] [--remove | --force-remove] [--replace] [--refresh] [-q] [--unmerged] [--ignore-missing] [(--cacheinfo <mode> <object> <file>)…] [--chmod=(+|-)x] [--assume-unchanged | --no-assume-unchanged] [--skip-worktree | --no-skip-worktree] [--ignore-submodules] [--really-refresh] [--unresolve] [--again | -g] [--info-only] [--index-info] [-z] [--stdin] [--verbose] [--] [<file>…]
举例:
git update-index --skip-worktree log/out.log #在git仓库索引中,忽略log/out.log文件的信息,亦即git仓库不再检测log/out.log文件的修改情况,在执行git status时不会列出此文件
git update-index --no-skip-worktree log/out.log #上述命令的反操作,亦即重新添加对log/out.log文件的检测
24.git shortlog(以概述的形式显示git仓库的修改记录)
格式:
git log --pretty=short | git shortlog [-h] [-n] [-s] [-e] [-w] git shortlog [-n|--numbered] [-s|--summary] [-e|--email] [-w[<width>[,<indent1>[,<indent2>]]]] <commit>…
举例:
git shortlog #以概述的形式显示git仓库的修改记录。此命令会以提交者分组,并统计提交次数,而且只显示每次提交的commit信息
git shortlog -n #按照提交者的提交次数进行降序显示
git shortlog -s #仅显示提交者以及提交次数
git shortlog -e #在提交者的后面显示提交者的邮箱
25.git grep(在git仓库文件中搜索指定字符串)
格式:
git grep [-a | --text] [-I] [-i | --ignore-case] [-w | --word-regexp] [-v | --invert-match] [-h|-H] [--full-name] [-E | --extended-regexp] [-G | --basic-regexp] [-F | --fixed-strings] [-n] [-l | --files-with-matches] [-L | --files-without-match] [(-O | --open-files-in-pager) [<pager>]] [-z | --null] [-c | --count] [--all-match] [-q | --quiet] [--max-depth <depth>] [--color[=<when>] | --no-color] [-A <post-context>] [-B <pre-context>] [-C <context>] [-f <file>] [-e] <pattern> [--and|--or|--not|(|)|-e <pattern>…] [--cached | --no-index | <tree>…] [--] [<pathspec>…]
举例:
git grep "testString" #在git仓库的所有文件中搜索含有testString字符串的行
git grep -n "testString" #显示字符串所在的行号,其他同上
git grep -l "testString" #仅列出包含所搜索字符串的文件名
git grep -c "testString" #仅列出包含所搜索字符串的文件名,同时显示所包含的所搜索字符串个数
git grep "testString" -- "*.java" #仅在所有的java文件中搜索相应字符串
26.git stash(暂存git仓库中的文件修改)
格式:
git stash list [<options>]
git stash show [<stash>]
git stash drop [-q|--quiet] [<stash>]
git stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]
git stash branch <branchname> [<stash>]
git stash [save [--patch] [-k|--[no-]keep-index] [-q|--quiet] [<message>]]
git stash clear
git stash create
举例:
git stash #暂存git仓库中的文件修改,即将修改过的文件缓存隐藏到git栈中,而将工作区的文件还原到修改之前的状态
git stash list #列出git栈中已经缓存的记录列表,成功执行一次git stash命令就会产生一条缓存记录
git stash pop #还原list列表中最后一次的缓存记录(亦即list中的stash@{0}记录)到当前工作区,同时将此记录从list中移除
git stash apply stash@{1} #还原list列表中标识为stash@{1}的缓存记录到当前工作区,同时将此记录从list中移除
git stash show #显示list列表中最后一次的缓存记录(亦即list中的stash@{0}记录)中文件的修改情况
git stash show stash@{1} #显示list列表中标识为stash@{1}的缓存记录中文件的修改情况
git stash clear #清空git栈中已经缓存的记录列表,此操作不可恢复
27.git revert(撤销已有的提交)
格式:
git revert [--edit | --no-edit] [-n] [-m parent-number] [-s] <commit>…
举例:
git revert fe0eeda6 #将fe0eeda6提交状态下的修改恢复,此命令执行后,将会产生一个撤销该次修改的提交
git revert -n fe0eeda6 #只撤销文件和index信息,而不会产生一个新的提交
git revert HEAD #撤销最后一次提交
28.git cherry-pick(重放已有的提交)
格式:
git cherry-pick [--edit] [-n] [-m parent-number] [-s] [-x] [--ff]
[-S[<key-id>]] <commit>…
git cherry-pick --continue
git cherry-pick --quit
git cherry-pick --abort
举例:
git cherry-pick fe0eeda6 #将其他分支的fe0eeda6提交,提交到当前分支下,此命令会产生一个新的提交
29.git apply(接受一个patch补丁)
格式:
git apply [--stat] [--numstat] [--summary] [--check] [--index] [--apply] [--no-add] [--build-fake-ancestor=<file>] [-R | --reverse] [--allow-binary-replacement | --binary] [--reject] [-z] [-p<n>] [-C<n>] [--inaccurate-eof] [--recount] [--cached] [--ignore-space-change | --ignore-whitespace ] [--whitespace=(nowarn|warn|fix|error|error-all)] [--exclude=<path>] [--include=<path>] [--directory=<root>] [--verbose] [<patch>…]
举例:
git apply format.patch #接受format.patch的改动,此处的format.patch必须是通过git format-patch命令生成的补丁文件,或者是符合patch -p1格式的补丁文件
git apply format.patch --reject #与上述命令的区别是:添加--reject参数后,命令会略过patch中的冲突,而确保接受其他所有正确的改动。如果没有添加--reject参数,而patch中存在冲突,则此命令整体失败,不接受任何改动
git apply format.patch --check #仅用来检测patch文件是否存在冲突,而并不执行改动
git apply format.patch -p2 #指定目录忽略级别
30.git fetch(将git服务器的更新同步到本地)
格式:
git fetch [<options>] [<repository> [<refspec>…]]
git fetch [<options>] <group>
git fetch --multiple [<options>] [(<repository> | <group>)…]
git fetch --all [<options>]
举例:
git fetch origin #将git服务器所有分支的更新同步到本地仓库各自的远程分支上,但并不自动合并到本地分支。如要合并分支,则需在各自分支下执行git merge命令。
git fetch origin master #将git服务器master分支的更新同步到本地仓库远程分支remotes/origin/master,但并不自动合并到本地分支master。如要合并分支,则需执行git merge origin/master命令。
31.git rebase(衍合git分支)
格式:
git rebase [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] [<branch>]
git rebase [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>] --root [<branch>]
git rebase --continue | --skip | --abort | --edit-todo
举例:
git rebase testBr #将testBr分支的代码衍合到当前分支下。rebase与merge的不同在于,rebase命令会使当前分支的提交是线性的,而merge命令则会产生一个合并提交。
git rebase --continue #如果衍合过程中出现冲突,则rebase命令会中断,此时需要解决冲突。冲突解决后,再执行此命令继续rebase。
git rebase --abort #放弃本次衍合操作,执行此命令后各分支的文件与提交恢复到衍合命令执行之前的状态。
git rebase --skip #直接使用衍合的分支替换当前分支,此命令有风险,可能会丢失一些提交。
32.git cat-file(显示版本库对象的信息)
格式:
git cat-file (-t | -s | -e | -p | <type> | --textconv ) <object>
git cat-file (--batch | --batch-check) < <list-of-objects>
举例:
git cat-file tag VERSION-V1.0 #显示tag对象的内容、类型及大小信息,此tag必须为含注释类型的
git cat-file commit fe0eeda6 #显示提交对象的内容、类型及大小信息
33.git gc(压缩git历史信息)
格式:
git gc [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune]
举例:
git gc #压缩git历史信息,以节约磁盘空间
34.git gui(打开git的图形界面工具)
格式:
git gui [<command>] [arguments]
举例:
git gui #打开git的图形界面工具。此命令成功的前提是:在Windows系统下只要安装git客户端就会附带git gui工具,而在Linux系统下要同时安装git core和git gui工具。
35.git config(设置git信息)
格式:
git config [<file-option>] [type] [-z|--null] name [value [value_regex]]
git config [<file-option>] [type] --add name value
git config [<file-option>] [type] --replace-all name value [value_regex]
git config [<file-option>] [type] [-z|--null] --get name [value_regex]
git config [<file-option>] [type] [-z|--null] --get-all name [value_regex]
git config [<file-option>] [type] [-z|--null] --get-regexp name_regex [value_regex]
git config [<file-option>] --unset name [value_regex]
git config [<file-option>] --unset-all name [value_regex]
git config [<file-option>] --rename-section old_name new_name
git config [<file-option>] --remove-section name
git config [<file-option>] [-z|--null] -l | --list
git config [<file-option>] --get-color name [default]
git config [<file-option>] --get-colorbool name [stdout-is-tty]
git config [<file-option>] -e | --edit
举例:
git config --global user.name "username" #设置本地git用户名
git config --global user.email "username@domain.com" #设置本地git用户的邮箱地址
git config --global core.editor vi #设置在执行git commit时,使用vi进行注释的编辑
git config user.name #查看设置的git用户名
#以下为快捷命令设置,可以简化git操作。以下命令设置后,可以使用自定义的较短格式,比如git branch可以简化为git br。
git config --global alias.br branch
git config --global alias.co checkout
git config --global alias.cl clean
git config --global alias.cn clone
git config --global alias.ci commit
git config --global alias.me merge
git config --global alias.pl pull
git config --global alias.ps push
git config --global alias.rs reset
git config --global alias.st status