git - diff of current changes before committing

I have changed several files in a git repository, but have not committed them yet.

I can get a list of the changes by just invoking git status. But how do I get a listing of the lines or the content that I have changed, in addition to the filenames?

I initially thought about using git diff, but it seems to be useful only for comparing already commited changes.

Usually I just do meld ., but on this case I'm connected to an external server via ssh.


Solution 1:

git diff by default shows difference between your working directory and the index (staging area for the next commit).

If you have already added (staged) the changes to the staging area, git diff --staged does the job. Staging area is the data from which the next commit will be formed by git commit.

P. S. Good reading (IMO) for Git beginners:

  • https://git-scm.com/book/en/v2 (most chapters; it explains the model behind Git and answers most of typical questions)
  • and then immediately http://gitready.com/ (usage tips).

Solution 2:

What i use for such cases is:

git diff HEAD *

This will show the changes since last commit. Although somehow it works quicker with

git diff .

or

git diff

To see the changes on previously git added files, use the staged flag:

git diff --staged