上次讲到如何将文件保存到git仓库中,这次继续分享一些git文件方面的常见操作。
git diff
这个命令顾名思义,用于查看文件内容的改动。
git diff [file name]
命令后面可以添加具体文件名,也可以不添加,不添加时则显示工作区内所有文件的改动。
图中文档部分白色代表两者相同的部分,红色-的部分代表暂存区的文件才有的内容,绿色+代表工作区文件才有的内容。
使用这个命令时需注意,如果暂存区没有还未提交的文件,那么这个命令比较的是当前工作区和暂存区文件的区别,如果暂存区没有任何文件,则是比较的是工作区与最近一次提交文件间的区别,如果想比较暂存区内未提交的文件和最近一次提交文件,则可以使用git different --staged/cached
。
当我们想直接比较工作区与最近一次提交版本的区别时,可以使用git diff HEAD
,HEAD是git特有的指针,指向当前活跃的仓库版本,一般来说没提交一次版本,HEAD都会挪移,指向最新的版本。
除了将工作区文件和最新版本做比较,还可以和历史版本做比较。
git diff [--staged] HEAD^
我们可以通过HEAD指针配合^和~符号的使用追溯以前的版本。也可在以前历史版本之间相互比较。
git diff HEAD^ HEAD~3
这个命令还可以添加一些选项来帮我我们更好做文件比较,比如
git diff --ignore-all-space ##忽略空白字符
git diff --ignore-space-at-eol ##忽略行尾的空格
git diff --ignore-space-change ##忽略空格差异
git diff --ignore-blank-lines ##忽略空行的差异
git log
这个命令用于显示提交历史,里面会有每个提交版本的ID号,提交作者的名字和油箱(通过git config设置的),以及提交时间和文档注释。
提交版本的ID可以用于git diff
做比较
git diff 40de2baa 90581519 ##写前几位就可以