案例
我经常发现自己盯着一些看起来不正确的旧代码。看起来有些东西已被删除(例如,它有一个没有任何值(value)的循环,或者它创建了一个变量但不使用它),或者有些东西很难理解。在这些情况下,我真的需要查看文件该部分的历史记录。虽然不是所有文件,只是那个部分或函数。
理想的解决方案
一个简单的命令,如
git log books.cpp:10
查找文件 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
将这个小脚本作为 git-linehistory
之类的东西放在你的路径中,并像这样调用它:
git linehistory books.cpp 5,15
它将向您显示第 5 到 15 行在该文件的每次提交时的样子。
关于git - 查找与文件特定部分相关的 git 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5178517/