我有一个文本文件,我想用它来跟踪更改。它是一个存储值(以及字符串和数组)的文件,其条目具有以下格式:
NAME: some_name
UNIT: some_unit
...
VALUE: 10
...
END
我已经设置了一个存储库来跟踪此文件的更改,但现在我想了解像
some_name
这样的条目的更改历史记录。
我认为这类似于了解功能的更改历史记录,用户希望了解整个功能在各个修订之间的历史记录。
我已经尝试过here描述的方法,并进行了多次尝试,例如:
git log -L '\bsome_name\b', '\bEND\b':config.txt
fatal: invalid object name '\bEND\b'.
也来自这里我已经尝试过:
git log -p | grep '(\bsome_name\b)(.|\s)*?(\bEND\b)'
...什么也不返回。
更新20240818: 进一步的尝试:
git log -L:some_name:config.txt
。 这确实适用于某些条目,但找不到其他条目,类似于 git log -L'/some_name/','/END/':config.txt
git log -p -W >> test.txt
我可以手动检查输出并查看上述方法未找到的条目确实存在。@phd 提供的答案应该有效,但它忽略了一些条目。
在当前签出的文件中查找要查看的文本块的第一行和最后一行的行号。然后:
git log -L123,157:config.txt
(显然,用您找到的数字替换这些数字。)请注意,命令行参数中没有空格。
git log -L/start_re/,/end_re/:file
,里面没有空格。 Git 使用 POSIX regex 语法,不支持 \b
字边界。试试这个:
git log -L'/some_name/','/END/':config.txt