gpt4 book ai didi

git log 单行 -L 而不显示差异或补丁?

转载 作者:行者123 更新时间:2023-12-02 03:01:37 24 4
gpt4 key购买 nike

我试图弄清楚文件中的哪一行被引入以及它在哪些提交中被更改。

我可以查看这些行的历史记录(文件 example.txt 中的第 10 行):

git log -L 10,11:example.txt

但是,对于每个日志条目,它都包含一个“差异”或“补丁”(我还不确定其中的区别),就好像我会运行:
git log -p

这使得输出更难以阅读 - 我只想查看提交消息列表及其更改了我感兴趣的行的提交的 ID。

例如,通常 git 日志可以通过使用 --pretty 格式来简化,使我们能够通读一个干净的提交消息列表来找到我们感兴趣的信息。 例如,我经常使用 --oneline 选项:
git log --oneline

然而,这显示了完整的日志 - 我们希望过滤它以仅显示更改了感兴趣的行的提交。像下面这样的东西会很棒,但漂亮的单行格式似乎不能与 -L 标志结合使用:
git log --oneline -L 10,11:example.txt

我尝试了来自 git log documentation 的选项和参数的各种组合。但还没有找到任何有效的东西。

有没有其他人面临这个问题或有什么可行的想法?

感谢您阅读到这里

最佳答案

正如 VonC 所提到的here ,

git log -s -L <start>,<end>:file
# and
git log -s -L :<funcname>:file

应该都可以使用 Git >= 2.22.0 来抑制补丁输出。这是在提交 9f607cd09c (line-log: suppress diff output with "-s", 2019-03-07) 中添加的.

另外,你提到
git log --oneline -L 10,11:example.txt

不起作用。 --oneline应该只适用于提交头,而不是差异输出( --oneline -p 将在一行上显示提交信息,然后是差异输出)。

我检查了 Git 2.13.3(2017 年 7 月 12 日发布,所以在您发布问题的时间)和 git log --oneline -L 10,11:example.txt确实有效(但它确实输出了完整的补丁)。

关于git log 单行 -L 而不显示差异或补丁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45587150/

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