用惯了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

Git 查看文件的历史的更多相关文章

  1. GIT 单个文件还原到历史版本号

    首先检查在历史文件中的版本号信息:git log <file> 将文件还原到历史版本号:git reset 版本号 <file> 文档工作区的检测:git checkout - ...

  2. git 查看文件修改记录

    今天追了个几年前留下来的坑, 在 git 里追溯修改过程坑死个爹, 具体方法估计没多久又会忘, 还是记下来以后有的参考 大部分教程都会告诉大家使用 git log 来查看对应文件的修改记录, 就像这样 ...

  3. git 查看文件修改

    查看某个文件的修改历史: 用git log -p filename. git blame filename是查看目前的每一行是哪个提交最后改动的. 查看某次提交修改列表: git show 版本号   ...

  4. Git查看文件制定行区间的提交记录

    git blame -L , /dir/file/file.php 这里查看file文件下6610至6613行的修改记录

  5. git查看某个文件修改历史

    [git查看某个文件修改历史] 1.使用git命令 git whatchanged charge.lua 显示某个文件的每个版本提交信息:提交日期,提交人员,版本号,提交备注(没有修改细节) git ...

  6. Git 学习笔记--git 查看某个文件的修改历史

    1. git log -p filename 查看文件的每一个详细的历史修改,如果没有-p选项,只显示提交记录,不显示文件内容修改,git log -p -3 filename 显示最近的3次提交. ...

  7. Git查看某一个文件的历史提交信息

    工作中我们有时候想要查看某一个文件的历史提交版本,] 还想看都修改过那些内容,那么这两个简单的命令就会帮到你了, 话不多说,comeBaby...... 1,首先查看一个文件的历史提交信息 git l ...

  8. Git查看两个版本之间修改了哪些文件

    gdiff 63e3b647d55fcc643e793e650c893be8601719b1 548cdaf01dbc2f08d1ca0b697a24afe512b75a2f --stat git l ...

  9. git 恢复单个文件的历史版本

    首先查看该文件的历史版本信息:git log Default@2x.png 记录下需要恢复的commit版本号:如 9aa51d89799716aa68cff3f30c26f8815408e926 恢 ...

随机推荐

  1. UWP的一种下拉刷新实现

    简介 我们最近实现了一个在UWP中使用的下拉刷新功能,以满足用户的需求,因为这是下拉刷新是一种常见的操作方式,而UWP本身并不提供这一机制. 通过下拉刷新这一机制,可以让移动端的界面设计变得更加简单, ...

  2. 使用FiddlerCore来测试WebAPI

    大家在调试Web相关的API时,经常会用Fiddler来查看相关的请求,以及返回结果.当然你也可以尝试修改或者重复你的请求信息.本文主要介绍如何使用代码来实现fiddler的功能. Fiddler C ...

  3. DDD~基础设施层~续

    回到目录 在之前写的DDD~基础设施层文章中,提到了UnitOfWork,它里面有一些方法,但经过项目证明,不应该有Save和IsExplicitSubmit,而这个工作单元只起到了数据上下文统一的作 ...

  4. EF架构~AutoMapper对象映射工具简化了实体赋值的过程

    回到目录 AutoMapper是一个.NET的对象映射工具,一般地,我们进行面向服务的开发时,都会涉及到DTO的概念,即数据传输对象,而为了减少系统的负载,一般我们不会把整个表的字段作为传输的数据,而 ...

  5. Yii 框架学习--02 进阶

    应用结构 入口文件 文件位置: web/index.php <?php //开启debug,应用会保留更多日志信息,如果抛出异常,会显示详细的错误调用堆栈 defined('YII_DEBUG' ...

  6. ssh文件传输命令:sz与rz命令

    内容概要: rz 上传文件到linux服务器,会出现选择框 sz filename 下载linux文件到windows 一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用s ...

  7. fir.im Weekly - 2016 年 Android 最佳实践列表

    2016 年已经过去一半,你在年初制定的成长计划都实现了吗? 学海无涯,技术成长不是一簇而就的事情.本期 fir.im Weekly 推荐 王下邀月熊_Chevalier的 我的编程之路--知识管理与 ...

  8. 常用的java类型转json的转换类

    公司不准引入json-lib-2.x.jar所以只好自己写了一个基本类型的object转json的类,然后支持8种基本类型和javabean,list,map,array,使用putJSON方法,ke ...

  9. Javaweb -- ServletContextListener

    当启动web应用后端服务时,有时需要预先从数据库或者配置文件等读取信息来配置一些全局变量之类的 这时可以用ServletContextListener,在启动服务时,加载设置基本配置 实现如下: (1 ...

  10. js返回上一页并刷新的多种实现方法

    <a href="javascript:history.go(-1)">返回上一页</a> <a href="javascript:loca ...