Lily Mara
Lily Mara

Reputation: 4128

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?

Upvotes: 6

Views: 4164

Answers (2)

knst
knst

Reputation: 533

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>

Upvotes: 2

Ismail Badawi
Ismail Badawi

Reputation: 37167

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

Upvotes: 12

Related Questions