【问题标题】:How can I get git to show me changes on an individual renamed file如何让 git 向我显示对单个重命名文件的更改
【发布时间】:2014-01-14 01:09:53
【问题描述】:

如果我这样做

git difftool -y --find-renames master

我得到分支上任何文件与原始版本的差异,所以如果我将“a”重命名为“b”并更改它,我会得到当前“b”和原始“a”之间的差异.但是,如果我这样做了

git difftool -y --find-renames master b

它与 /dev/null 进行比较。这很令人困惑。

有什么方法可以让 git diff 达到我的预期?

【问题讨论】:

  • git diff renamed file的可能重复
  • 不,因为在那个问题和答案中,假设您知道文件已重命名以及从什么开始。情况并非总是如此。
  • 你看答案了吗?我相信它确实回答了你的问题。简短的形式:没有。当您指定路径时,您需要同时指定(原始路径和新路径),否则您就不走运了。
  • 是的,我做到了,不,它没有——它解释了如果你知道你想要什么,如何做我想做的事。如果您不知道自己想要什么,它就没有多大帮助。在发布此问题之前,我确实检查了该问题

标签: git file-rename


【解决方案1】:

你总是可以明确地比较你的,

$ git diff master:a b

-M(查找重命名)和-C 是启发式方法,在您的情况下,您知道是a 被明确重命名为b

如果事先不知道ab,您可以利用您的第一个命令首先获取建议列表,然后浏览文件历史记录:

$ git diff --find-renames --name-only master

对每个可疑的重命名调用log --follow

$ git log --follow <renamed file>

【讨论】:

  • 我并不总是知道这一点。我碰巧知道在给出的例子中,很明显。但情况并非总是如此 - 特别是如果其他人在另一个提交中重命名了该文件。
猜你喜欢
  • 2012-04-08
  • 2012-12-21
  • 2020-05-22
  • 1970-01-01
  • 2016-05-09
  • 1970-01-01
  • 2013-04-24
  • 2019-04-14
  • 2011-08-10
相关资源
最近更新 更多