有没有办法让git为你提交一个提交日志,只提交触及文件中特定行的提交?
喜欢git blame,但git blame会向您显示触及特定行的最后提交.
我真的想得到一个类似的日志,而不是文件中任何地方的提交列表,而只是提交到特定行的提交.
我在Python中有一个实用程序脚本:
#!/usr/bin/env python
import sys
unique_lines = []
duplicate_lines = []
for line in sys.stdin:
if line in unique_lines:
duplicate_lines.append(line)
else:
unique_lines.append(line)
sys.stdout.write(line)
# optionally do something with duplicate_lines
Run Code Online (Sandbox Code Playgroud)
这个简单的功能(uniq无需先排序,稳定排序)必须作为简单的UNIX实用程序提供,不是吗?也许是管道中过滤器的组合?
询问的原因:在我无法从任何地方执行python的系统上需要此功能
我想许多开发人员喜欢在帮助下调查来源git gui blame.正如在Linux-2.6.12-rc2的提交中所解释的那样(也在Github上镜像),它需要有专门的历史Linux存储库用于此目的.
Linux的2.6.12-RC2
最初的git存储库构建.即使我们拥有它,我也不会厌倦完整的历史.如果我们想要的话,我们可以创建一个单独的"历史"git存档,同时当导入到git时它大约是3.2GB - 这会让早期的git日不必要地变得复杂,当我们没有很多良好的基础设施.
让它撕裂!
我已经查看了很多准备好的历史存储库但是我没有找到包含更改的版本返回到零版本,所以我放弃了,我在这里问这个问题.
考虑包含以下行的 Python 配置文件:
THEME = 'gum'
Run Code Online (Sandbox Code Playgroud)
该THEME键只出现一次,所以当我想知道什么THEME是,我用grep文件:
grep THEME pelicanconf.py
Run Code Online (Sandbox Code Playgroud)
该文件保存在 git 中,我想THEME在所有以前的 git 提交中使用grep for ,以便知道这一行何时更改。
有没有一种优雅的方式来 grep 一个 git 文件的整个历史?