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?

  • How to list all the files in a commit?
  • Jgit: how to show changed files in merge commit
  • Git - how to list ALL objects in the database
  • How to specify path when doing git show on a merge commit
  • git - Is git show safe to use on binary files when the output is redirected to a file?
  • What is the difference between “git show test.rb” and “git show HEAD:test.rb”?
  • In git, how do I view a previous version of an image file?
  • Make different `pretty` settings for git-log and git-show
  • One Solution collect form web for “Git show whole file changes”

    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
    
    Git Baby is a git and github fan, let's start git clone.