先附上教程——《ProGit 2》
配置信息
Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量。 这些变量存储在三个不同的位置:
/etc/gitconfig
文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 –system 选项的 git config 时,它会从此文件读写配置变量。~/.gitconfig
或~/.config/git/config
文件:只针对当前用户。 可以传递 –global 选项让 Git 读写此文件。- 当前使用仓库的 Git 目录中的 config 文件(就是
.git/config
):针对该仓库。你可能会看到重复的变量名,因为 Git 会从不同的文件中读取同一个配置(例如:
/etc/gitconfig
与~/.gitconfig
)。 这种情况下,Git 会使用它找到的每一个变量的最后一个配置。
你可以通过输入git config <key>
: 来检查 Git 的某一项配置
$ git config user.name
John Doe
获取帮助
若你使用 Git 时需要获取帮助,有三种方法可以找到 Git 命令的使用手册:
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
例如,要想获得 config 命令的手册,执行
$ git help config
这些命令很棒,因为你随时随地可以使用而无需联网。
你还可以尝试在 Freenode IRC 服务器( irc.freenode.net )的 #git 或 #github 频道寻求帮助。
查看提交历史
git log -p -2
:用来显示每次提交的内容差异。 你也可以加上 -2 来仅显示最近两次提交- 如果你想看到每次提交的简略的统计信息,你可以使用
--stat
选项 git log --pretty=oneline
:--pretyt
指定使用不同格式的方式展示,子选项有oneline
、short
、full
、fuller
git log --pretty=format:"%h - %an, %ar : %s"
:定制要显示的记录格式
%H
提交对象(commit)的完整哈希字串%h
提交对象的简短哈希字串%T
树对象(tree)的完整哈希字串%t
树对象的简短哈希字串%P
父对象(parent)的完整哈希字串%p
父对象的简短哈希字串%an
作者(author)的名字%ae
作者的电子邮件地址%ad
作者修订日期(可以用 –date= 选项定制格式)%ar
作者修订日期,按多久以前的方式显示%cn
提交者(committer)的名字%ce
提交者的电子邮件地址%cd
提交日期%cr
提交日期,按多久以前的方式显示%s
提交说明
你一定奇怪 作者 和 提交者 之间究竟有何差别, 其实作者指的是实际作出修改的人,提交者指的是最后将此工作成果提交到仓库的人。 所以,当你为某个项目发布补丁,然后某个核心成员将你的补丁并入项目时,你就是作者,而那个核心成员就是提交者。
git log
:其他常用选项:-p
按补丁格式显示每个更新之间的差异。--stat
显示每次更新的文件修改统计信息。--shortstat
只显示 –stat 中最后的行数修改添加移除统计。--name-only
仅在提交信息后显示已修改的文件清单。--name-status
显示新增、修改、删除的文件清单。--abbrev-commit
仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。--relative-date
使用较短的相对时间显示(比如,“2 weeks ago”)。--graph
显示 ASCII 图形表示的分支合并历史。--pretty
使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。
另外还有按照时间作限制的选项,比如
--since
和--until
也很有用,如git log --since=2.weeks
。这个命令可以在多种格式下工作,比如说具体的某一天"2008-01-15"
,或者是相对地多久以前"2 years 1 day 3 minutes ago"
。
还可以给出若干搜索条件,列出符合的提交。 用 –author 选项显示指定作者的提交,用 –grep 选项搜索提交说明中的关键字。 (请注意,如果要得到同时满足这两个选项搜索条件的提交,就必须用 –all-match 选项。否则,满足任意一个条件的提交都会被匹配出来)
另一个非常有用的筛选选项是 -S,可以列出那些添加或移除了某些字符串的提交。 比如说,你想找出添加或移除了某一个特定函数的引用的提交,你可以这样使用:
$ git log -Sfunction_name最后一个很实用的 git log 选项是路径(path), 如果只关心某些文件或者目录的历史提交,可以在 git log 选项的最后指定它们的路径。 因为是放在最后位置上的选项,所以用两个短划线(–)隔开之前的选项和后面限定的路径名。
- 限制
git log
输出的选项
-(n)
仅显示最近的 n 条提交--since, --after
仅显示指定时间之后的提交。--until, --before
仅显示指定时间之前的提交。--author
仅显示指定作者相关的提交。--committer
仅显示指定提交者相关的提交。--grep
仅显示含指定关键字的提交-S
仅显示添加或移除了某个关键字的提交
举例:如果要查看 Git 仓库中,2008 年 10 月期间,Junio Hamano 提交的但未合并的测试文件,可以用下面的查询命令:
$ git log --pretty="%h - %s" --author=gitster --since="2008-10-01" \
--before="2008-11-01" --no-merges -- t/
零碎笔记
git status -s
或者git status --short
:简略信息输出git diff --cached
:查看已经暂存的内容的不同(或者git diff --staged
)git difftool
:用Araxis、emerge、vimdiff等软件输出diff分析结果,git difftool --tool-help
查看系统支持的git diff插件git commit -v
:详细知道做了哪些修改,将在随后打开的编辑器中显示。退出编辑器时,git将丢弃那些产生的注释(包括简单注释和详细注释,好像是这么理解的吧)git commit -a -m ""
:可以省略add环节git rm --cached 文件
:删除版本库中的文件,但磁盘上仍然保留该文件(可使用glob表达式)git mv file_from file_to
:更名/移动
不想写了,直接看链接的教程吧。