Git 查看文件的历史
用惯了tfs,刚一接触git感觉很不顺手,特别是一些很基本的操作,用起来都怪怪的(可能是不习惯命令行的原因吧)。
下面把查看文件历史的用例小结一下。
查看某个文件的修改历史
在git中查看历史的命令主要是git log,要查看某个文件的修改历史可以这样:
$ git log -- begin.txt
可以添加不同的选项让输出的内容或格式有所不同。
$ git log -p -- begin.txt
-p 选项可以输出每次提交中的diff, 但个人感觉会把输出搞得很长、很乱,不容易找到重点。
个人比较喜欢的方式是:
$ git log --pretty=oneline -- filename
在log 命令中加入 --pretty=oneline 选项会让结果看起来清爽一些,但是只能看到comments,看不到提交的用户和日期。
这也能够让我们集中注意力快速找到关注的提交记录。
然后使用 git show命令查看完整的提交内容。
当然,除了命令行工具您也可以使用GUI程序查看文件的历史记录:
gitk filename
查看历史中的文件内容
当我们使用 git log 命令找到了某次提交,并且想看看这次提交时文件的完整内容。
这时,我们需要使用 git show 命令:
$ git show xxxxx:filename
也许此时你并不是看看就算了,你想要使用这个版本的文件更新工作区中的文件。
直接从 git show 命令的输出中拷贝内容是个不错的选择。
但也可以通过组合使用不同的命令来实现:
$ git checkout <commit> --filename
$ git reset filename
此时只有工作区被更新了(你也可以把他当做是一次回滚操作)。
比较历史中不同的文件版本
我们经常使用版本控制工具来对比提交历史中的两个文件,下面看看用 git 怎么做:
$ git diff xxxx1 xxxx2 -- filename
作者:sparkdev
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。