gpt4 book ai didi

git - 在 git log 中很好地显示文件重命名历史

转载 作者:IT王子 更新时间:2023-10-29 01:15:05 34 4
gpt4 key购买 nike

git命令

git log --format='%H' --follow -- foo.txt

将为您提供触及 foo.txt 的一系列提交, 在重命名中跟随它。

我想知道是否有 git log该命令还将在每次提交旁边打印相应的历史文件名。

它会是这样的,我们可以在这里解释 '%F'成为文件名的(实际上不存在的)占位符。

git log --format='%H %F' --follow -- foo.txt

我知道这可以用

git log --format='%H' --follow --numstat -- foo.txt

但输出并不理想,因为它需要一些重要的解析;每个提交都分散在多行中,您仍然需要解析文件重命名语法 ( "bar.txt => foo.txt" ) 以找到您要查找的内容。

最佳答案

你可以像这样简化它:

git log --format='%H' --name-only --follow -- README.md

这会给你类似这样的输出

621175c4998dfda8da

README.md
d0d6ef0a3d22269b96

README.md

这应该更容易解析。例如,您可以使用哨兵并像这样输出换行符:

git log --format='%H%%' --name-only --follow -- README.md | sed ':a;N;$!ba;s/%\n\n/ /g'

应该在同一行给你散列和文件名:

621175c4998dfda8da README.md
d0d6ef0a3d22269b96 README.md

有关 sed 调用的信息,请参阅 How can I replace a newline (\n) using sed?其中有我基于该位的答案。

关于git - 在 git log 中很好地显示文件重命名历史,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13447884/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com