【问题标题】:How to find the most similar commit to a modified file?如何找到与修改文件最相似的提交?
【发布时间】:2012-01-20 09:43:06
【问题描述】:

我最近收到了我的一个文件的修改,我将它置于修订控制之下,但我无法确定这个修改后的文件是基于哪个提交。

那么,有没有办法确定修改给定文件的哪个提交与已编辑版本的差异最小?

【问题讨论】:

标签: git diff similarity


【解决方案1】:

我不知道有什么神奇的方法可以检查这个,但你可能想试试这个:

git diff --stat HEAD..HEAD~10 -- myfile.cpp

并手动更改 HEAD~10

它会告诉你修订之间有多少差异。

您可以使用以下方法自动执行此操作:

for i in {1..5}; do echo "HEAD~$i"; git diff --stat HEAD~$i..HEAD CMakeLists.txt ; done

【讨论】:

  • 谢谢,我可以将git-diff --stat 的输出通过管道传输到grep myfile.cpp | gawk ' { print $3 } ' 以减少更改量。我猜想与那个 for 循环一起,然后可以使用 sort 来获得最佳候选人并手动查看他们的差异
  • 代替那个for循环,你可以使用git log --stat myfile.cpp,然后再用一些聪明的gawking,输出可能会被格式化为“commitid howManyChanges”之类的东西(我不太了解awk 虽然)
  • git log --numstat --oneline -- myfile.cpp 提供了一个漂亮而简短的输出(好的,添加了足够多的 cmets...)
猜你喜欢
  • 2011-06-14
  • 2021-06-08
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
  • 2021-05-12
  • 1970-01-01
  • 2015-07-14
  • 2015-11-29
相关资源
最近更新 更多