有没有办法让git为你提交一个提交日志,只提交触及文件中特定行的提交?
喜欢git blame,但git blame会向您显示触及特定行的最后提交.
我真的想得到一个类似的日志,而不是文件中任何地方的提交列表,而只是提交到特定行的提交.
我无法弄清楚如何使用它git blame来获取曾经触及给定范围的行的提交集.还有像类似的问题这一个,但接受的答案没有给我带来更进一步.
假设我的定义从第1000行开始foo.rb.它只有5行长,但改变这些行的提交数量是巨大的.如果我做
git blame foo.rb -L 1000,+5
Run Code Online (Sandbox Code Playgroud)
我引用了(最多)五个不同的提交来改变这些行,但我也对"它们后面的提交"感兴趣.
同样的,
git rev-list HEAD -- foo.rb | xargs git log --oneline
Run Code Online (Sandbox Code Playgroud)
几乎是我想要的,但我无法指定行范围 git rev-list
我可以传递一个标志来git blame获取曾触及这五行的提交列表,或者构建提取此类信息的脚本的最快方法是什么?让我们暂时忽略定义曾经多于或少于5行的可能性.
我需要在git存储库中搜索特定文件的历史记录,以找到一条消失的行.提交消息将没有任何相关文本可供搜索.我用什么命令?
进一步的细节:这是我的非标准任务跟踪软件的todo列表的历史.我已经保留了两年,因为在软件中没有为我保留足够的信息.遗憾的是,我的提交消息通常只有任务ID,而我需要做的是按主题而不是按编号查找已关闭的任务.是的,真正的解决方案是更好的任务跟踪软件,但这完全不在我手中.
是否可以在Git中按行号列出文件中给定行的所有先前版本?
我觉得它有用的原因是能够根据记录的堆栈跟踪报告更轻松地解决问题.
即我undefined method exception在给定文件的第100行记录.该文件包含在大量提交中,导致给定的行可能在文件中上下移动,即使没有对其进行任何更改.
如何在最后x次提交中打印出给定文件的第100行的内容?