使用Git版本控制查看文件的更改历史记录


坚挺的阿袁
2025-03-23 11:10:48 (2天前)
  1. 如何在Git中查看单个文件的更改历史记录,完整的详细信息?

我有:

git log - [文件名]

这表现了


</跨度>
文件的提交历史…

17 条回复
  1. 0# 喜欢一个人丶 | 2019-08-31 10-32



    随着优秀

    Git扩展

    ,你去历史文件中仍然存在的一个点(如果它已被删除,否则只需转到HEAD),切换到

    File tree

    选项卡,右键单击该文件并选择

    File history




    默认情况下,它通过重命名跟随文件,并且

    Blame

    选项卡允许查看给定修订版的名称。



    它有一些小问题,比如表现

    fatal: Not a valid object name

    在里面

    View

    单击删除修订时的选项卡,但我可以忍受。 :-)


  2. 1# 老夫的少女心吖 | 2019-08-31 10-32



    如果您正在使用带有git插件的eclipse,它具有出色的历史比较视图。右键单击该文件,然后选择“与…比较”=&gt; “历史”


  3. 2# 晴天?霹雳 | 2019-08-31 10-32



    查看文件的所有完整历史记录更改的一个很好的属性:




    1. git log follow -p

    2. </code>

  4. 3# 晴天 | 2019-08-31 10-32



    SourceTree用户



    如果您使用SourceTree可视化您的存储库(它是免费且非常好),您可以右键单击文件并选择

    记录已选中
    </强>






    显示屏(下方)比gitk更友好,列出的大多数其他选项。不幸的是(此时)没有简单的方法从命令行启动此视图 - SourceTree的CLI目前只打开repos。





  5. 4# Jacob | 2019-08-31 10-32



    我正在寻找的答案不是在这个线程中是看到我为提交而上演的文件中的更改。即




    1. git diff cached

    2. </code>

  6. 5# 文艺青年 | 2019-08-31 10-32



    如果您使用TortoiseGit,您应该能够右键单击该文件并执行

    TortoiseGit —> Show Log

    。在弹出的窗口中,确保:







    • Show Whole Project

      ‘选项未被选中。







    • All Branches

      ‘选项被选中。




  7. 6# Autistic | 2019-08-31 10-32



    要显示哪个修订版本和作者上次修改了文件的每一行:




    1. git blame filename

    2. </code>


    或者如果你想使用强大的blame GUI:




    1. git gui blame filename

    2. </code>

  8. 7# biu~ | 2019-08-31 10-32




    git diff -U

    给你一个统一的差异。



    它应该是红色和绿色。如果不是,请运行:

    git config color.ui auto

    第一。


  9. 8# 谦成 | 2019-08-31 10-32



    通过阅读并播放后的其他答案摘要:



    通常的命令行命令是




    1. git log follow all -p dir/file.c

    2. </code>


    但是你也可以使用gitk(gui)或tig(text-ui)来提供更加人性化的方式来查看它。




    1. gitk follow all -p dir/file.c

    2. tig follow all -p dir/file.c

    3. </code>


    在debian / ubuntu下,这些可爱工具的安装命令如预期:




    1. sudo apt-get install gitk tig

    2. </code>


    而我目前正在使用:




    1. alias gdf=’gitk follow all -p

    2. </code>


    所以我可以打字

    gdf dir

    获取子目录中所有内容的焦点历史记录

    dir



  10. 9# 没身份别烦我 | 2019-08-31 10-32



    如果要查看文件的整个历史记录,

    包含



    所有其他

    分支使用:




    1. gitk all

    2. </code>

  11. 10# 不易青年。 | 2019-08-31 10-32



    要么:




    gitx —



    如果你正在使用

    gitx


  12. 11# 回忆氵独奏♪ | 2019-08-31 10-32



    您可以使用




    1. git log -p filename

    2. </code>


    让git为每个日志条目生成补丁。



    看到




    1. git help log

    2. </code>


    对于更多选项 - 它实际上可以做很多好事:)为了获得特定提交的差异你可以




    1. git show HEAD

    2. </code>


    或标识符的任何其他修订。或者使用




    1. gitk

    2. </code>


    以可视方式浏览更改。


  13. 12# v-star*위위 | 2019-08-31 10-32




    git log —follow -p — path-to-file



    这将显示

    整个
    </强>
    文件的历史记录(包括重命名以外的历史记录以及每次更改的差异)。



    换句话说,如果文件名为

    bar

    曾经被命名

    foo

    , 然后

    git log -p bar

    (没有

    —follow

    选项)只会显示文件的历史记录,直到它被重命名为止 - 当它被称为文件时,它不会显示文件的历史记录

    foo

    。运用

    git log —follow -p bar

    将显示文件的整个历史记录,包括文件被称为的任何更改

    foo

    。该

    -p

    选项确保每次更改都包含差异。


  14. 13# 甲基蓝 | 2019-08-31 10-32



    为此,我会使用:




    1. gitk [filename]

    2. </code>


    或者按照文件名过去重命名




    1. gitk follow [filename]

    2. </code>

  15. 14# 哇。 | 2019-08-31 10-32



    如果您希望保持基于文本,则可能需要使用


    TIG

    </强>



    快速安装:





    • apt-get的
      </强>

      1. # apt-get install tig
      2. </code>
      3. </LI>
      4. <LI>
      5. 的<strong>
      6. HomebrewOS X
      7. </强>
      8. <code>
      9. $ brew install tig
      10. </code>
      11. </LI>



    用它来查看单个文件的历史记录:

    tig [filename]


    或浏览详细的回购历史记录:

    tig



    相近

    gitk

    但是基于文本。支持终端颜色!


  16. 15# 庸人自扰 | 2019-08-31 10-32





    SmartGit


    </强>




    1. 在菜单中启用显示未更改的文件:查看/显示未更改的文件


    2. 右键单击该文件并选择“Log”或按“Ctrl-L”

    3. </醇>

登录 后才能参与评论