一般情况下,使用git clone 链接地址
命令,就可以将项目拉取到我们本地。但很多大型的项目都不是一次性commit就完事了,而是累足成步,每个成功的项目都源自一次次的commit完善。我们可以直接在网站中点击commits
查看历史提交记录,或者在拉取项目后,使用git log
命令,这2种方法都可以粗略地看到每次commit的作者和日期。注意使用git log
命令的时候,如果日志过长,会在最下方一行显示:
符号,可以使用键盘的上下箭头进行滚动查看,输入q
可以退出日志浏览。
查看项目中某个目录下的提交历史
我们输入git log --help
,可以在弹出的帮助文档中看到:
Trace the evolution of the line range given by
<start>
,<end>
, or by the function name regex<funcname>
, within the<file>
. You may not give any pathspec limiters. This is currently limited to a walk starting from a single revision, i.e., you may only give zero or one positive revision arguments, and<start>
and<end>
(or<funcname>
) must exist in the starting revision. You can specify this option more than once. Implies--patch
. Patch output can be suppressed using--no-patch
, but other diff formats (namely--raw
,--numstat
,--shortstat
,--dirstat
,--summary
,--name-only
,--name-status
,--check
) are not currently implemented.
因此,我们可以加入参数--name-status
,并在其后加上目录路径,来追踪某个目录下所有文件的提交历史,或者加入目录路径下的具体文件名来追踪该文件的提交历史。比如命令$ git log --name-status --oneline -- source/ocotillo/dygraph/layout/fdl/modular
。这里我们额外使用--oneline
参数后,git log
信息会变得非常简洁,默认只展示简短的commit id
和提交注释。与之相对的是默认参数--format
,会将所有信息完整打印出来。
无论使用哪个,日志会以时间排序的方式呈现,最近的日志记录在最上边。
在日志记录中,每次commit涉及到的文件,其名称前面会有一个大写字母的符号表示,其含义是:
A:增加的文件
C:文件的一个新拷贝
D:删除的一个文件
M:文件的内容或者mode被修改了
R:文件名被修改了,注意这里的文件名包括目录路径的名称,文件被移动到其他位置也视为文件名被修改
T:文件的类型被修改了
U:文件没有被合并(需要先完成合并,之后才能进行提交)
X:未知状态。(可能遇到bug,可以向git提交bug report)
另外,如果使用的是IDEA开发工具的话,可以在Git
窗口中直接点击查看每次的提交记录即可。
日志文件的输出
在控制台进行日志查看有点不方便,我们要将其输出到本地的txt格式文件中,可使用简单的git log > log.txt
命令。同样地,如果只想输出某个文件或目录的提交日志,一样是在后面加上> 输出的本地文件名
,如git log --name-status --oneline -- source/ocotillo/dygraph/layout/fdl/modular > fileLog.txt
。