Git show whole file changes

3.9k views Asked by At

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?

2

There are 2 answers

0
Ismail Badawi On BEST ANSWER

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
0
knst On

This command show whole file:

git show HEAD:./<path_to_file>

And it works also for any revision:

git show <rev-id>:./<path_to_file>