From: J. Bruce Fields Date: Sat, 19 May 2007 04:37:25 +0000 (-0400) Subject: user-manual: finding commits referencing given file content X-Git-Tag: v1.5.1.6~1^2~1 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=187b0d80dfad2f51df580bffbbc1e7bc2103f6d4;p=git.git user-manual: finding commits referencing given file content Another amusing git exploration example brought up in irc. (Credit to aeruder for the complete solution.) Signed-off-by: "J. Bruce Fields" --- diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt index 1ab3d4b87..222171be3 100644 --- a/Documentation/user-manual.txt +++ b/Documentation/user-manual.txt @@ -921,6 +921,22 @@ echo "git diff --stat --summary -M v$last v$new > ../diffstat-$new" and then he just cut-and-pastes the output commands after verifying that they look OK. +Finding commits referencing a file with given content +----------------------------------------------------- + +Somebody hands you a copy of a file, and asks which commits modified a +file such that it contained the given content either before or after the +commit. You can find out with this: + +------------------------------------------------- +$ git log --raw -r --abbrev=40 --pretty=oneline -- filename | + grep -B 1 `git hash-object filename` +------------------------------------------------- + +Figuring out why this works is left as an exercise to the (advanced) +student. The gitlink:git-log[1], gitlink:git-diff-tree[1], and +gitlink:git-hash-object[1] man pages may prove helpful. + [[Developing-with-git]] Developing with git ===================