【问题标题】:Can I git diff a file which name has changed?我可以 git diff 一个名称已更改的文件吗?
【发布时间】:2019-10-02 15:22:45
【问题描述】:

当文件名或路径改变时,git status 不会告诉我有修改过的文件,它会告诉我有删除的文件和创建的文件。 git diff 向我显示文件先前版本的所有内容,而不向我显示新内容(因为它是一个新文件)。

是否可以查看名称或路径已更改的文件中的更改?

【问题讨论】:

  • 为了避免两个单独的 git 状态消息,您可以使用git mv 而不是普通的mv 来重命名文件。然后git就会知道文件被重命名了。

标签: git diff


【解决方案1】:

是的,添加删除和创建的文件,然后在索引上运行差异:

git add oldname newname
git diff --cached oldname newname

如果文件差异太大,差异将分别显示它们,否则将显示为更新的单个文件(使用新名称和一些更新的内容)。

另外,正如@YesThatIsMyName 所提到的,您可以在Git 中直接使用git mv oldname newname 重命名文件,而不必在移动它们后运行git add oldname newname

【讨论】:

    【解决方案2】:

    您可以将 --follow 开关与 git log 一起使用。它会显示已提交更改的历史记录,即使在重命名后也是如此。

    git log --follow renamedfile.cs
    

    有关详细信息,请参阅here

    另外,请参阅这个有趣的相关问题here

    【讨论】:

      猜你喜欢
      • 2012-04-08
      • 2017-10-28
      • 2011-03-18
      • 2011-05-31
      • 2018-06-01
      • 2017-08-14
      • 2011-10-03
      • 1970-01-01
      • 2011-03-20
      相关资源
      最近更新 更多