Search code examples
gitdiffgit-diffgit-show

Git show whole file changes


Is there a way to get the git show command to show the whole contents of a file when viewing a commit? For example: if it currently show something like

foo.cpp

+++ int main() {
+++    std::cout << "HELLO" << std::endl;
+++ }

I would want the output to say:

foo.cpp

#include <stdio> //assuming this was from an earlier commit

+++ int main() {
+++    std::cout << "HELLO" << std::endl;
+++ }

Is there a simple way to do this?


Solution

  • This is kind of a hack, but git show (like git diff) has the -U option that lets you specify how many lines of context to show. If you use a number that's bigger than the region between the difference and the start or end of the file, then it'll show the whole file. So if you use a really big number, it'll work the way you want on (hopefully) any file you try it on:

    git show -U99999