我注意到我的git存储库中某些makefile缺少变量定义的问题,我想在所有提交历史记录中搜索以查找变量集中我的变量TESTDIR发生的位置
我会怎么做?
欢呼声
答案 0 :(得分:4)
您可以使用git log -p FILENAME
来显示文件的历史记录,它显示每个版本之间的差异,您应该能够在那里找到您的更改。
类似于:git log --pretty=format:"%h" -p Makefile
给我一个这样的输出:
$ git log --pretty=format:"%h" -p Makefile
bd45eb7
diff --git a/Makefile b/Makefile
index 58395fa..8bd4e94 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,2 @@
-1
-12
22
32
91f610d
diff --git a/Makefile b/Makefile
index d00491f..58395fa 100644
--- a/Makefile
+++ b/Makefile
@@ -1 +1,4 @@
1
+12
+22
+32
15a8456
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Makefile
@@ -0,0 +1 @@
+1
如果更改仍在Makefile
中,您可以使用git blame
查找放入的修订版。
答案 1 :(得分:4)
如果您使用git diff -STESTDIR
,它会显示引入或删除了哪些更改集TESTDIR。来自git-log man page:
-S<串GT; 查找引入或删除< string>实例的差异。请注意,这与简单地出现在diff输出中的字符串不同;看到了 gitdiffcore(7)中的pickaxe条目有关详细信息。
另请查看该手册页中--pickaxe-all
下方所述的--pickaxe-regex
和-S
。