案例
通常我发现自己正盯着一些看起来不正确的旧代码.看起来已经删除了某些东西(例如它有一个没有任何价值的循环,或者它创建了一个变量但没有使用它),或者某些东西很难理解.在这些情况下,我真的需要查看文件该部分的历史记录.不是所有的文件,只是那个部分或功能.
理想解决方案
简单的命令就像
git log books.cpp:10
Run Code Online (Sandbox Code Playgroud)
查找文件books.cpp的第10行(可能还有周围环境)的历史可能要求太多魔术,但你有没有想过如何解决这段历史的想法?
我试过的
尝试使用blame,然后在给定的行提交之前检查提交 - 重复它直到我看够了.但这是非常繁琐的工作.
您是否觉得需要此功能?你有办法实现它吗?分享您的体验!
Git 非常容易扩展。这样的事情能达到你想要的吗?
#!/bin/bash
FILENAME=$1
LINENUMBERS=$2
for hash in `git log --pretty=format:%h ${FILENAME}`
do
echo "***************** Showing ${FILENAME} at ${hash}"
git blame -L ${LINENUMBERS} ${hash} ${FILENAME}
done
Run Code Online (Sandbox Code Playgroud)
将这个小脚本放入您的路径中,如下所示git-linehistory:
git linehistory books.cpp 5,15
Run Code Online (Sandbox Code Playgroud)
它将显示该文件每次提交时第 5 行到第 15 行的样子。
| 归档时间: |
|
| 查看次数: |
382 次 |
| 最近记录: |