如何用Git追踪跨文件移动的代码行历史?
追踪跨文件移动的代码行历史
你可以通过内容匹配结合--follow参数实现,无需手动切换提交定位原文件:
使用内容匹配的
git log -L语法,配合--follow追踪文件移动/重命名历史:git log --follow -L :'Footer is saved at the end of the file, with fixed length':./FileFormat.h这里的
:内容:文件名语法会让Git自动匹配目标文件中包含该内容的代码块,--follow参数会让Git追踪文件的移动路径,自动回溯到代码原本所在的fileB,输出完整的提交记录。若需要更精准的正则匹配内容变更,可结合
git log -G和--follow:git log --follow -G'Footer is saved at the end of the file, with fixed length' -- FileFormat.h该命令会搜索所有包含这段内容变更的提交,同时追踪文件移动历史,直接定位到代码最初添加的提交。
注意:--follow默认支持单个文件的多次移动/重命名追踪,代码在多文件间迁移的情况也能自动回溯路径。
内容的提问来源于stack exchange,提问作者calvin
相关产品推荐
相关产品推荐

