Путеводитель по Руководству Linux

  User  |  Syst  |  Libr  |  Device  |  Files  |  Other  |  Admin  |  Head  |



   git-diff-index    ( 1 )

сравните дерево с рабочим деревом или индексом (Compare a tree to the working tree or index)

CACHED MODE

If --cached is specified, it allows you to ask:

show me the differences between HEAD and the current index contents (the ones I'd write using 'git write-tree')

For example, let's say that you have worked on your working directory, updated some files in the index and are ready to commit. You want to see exactly what you are going to commit, without having to write a new tree object and compare it that way, and to do that, you just do

git diff-index --cached HEAD

Example: let's say I had renamed commit.c to git-commit.c, and I had done an update-index to make that effective in the index file. git diff-files wouldn't show anything at all, since the index file matches my working directory. But doing a git diff-index does:

torvalds@ppc970:~/git> git diff-index --cached HEAD -100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 commit.c +100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 git-commit.c

You can see easily that the above is a rename.

In fact, git diff-index --cached should always be entirely equivalent to actually doing a git write-tree and comparing that. Except this one is much nicer for the case where you just want to check where you are.

So doing a git diff-index --cached is basically very useful when you are asking yourself "what have I already marked for being committed, and what's the difference to a previous tree".