X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=Documentation%2Fgit-diff-index.txt;h=9cd43f105bd78778359ded7c6b3300502d642ca9;hb=HEAD;hp=2fc3eed710dbfeda8911097a8b5f493a220e5f3c;hpb=72e5890b68e7199d92620d3bba91fa36dd259404;p=git.git diff --git a/Documentation/git-diff-index.txt b/Documentation/git-diff-index.txt index 2fc3eed7..9cd43f10 100644 --- a/Documentation/git-diff-index.txt +++ b/Documentation/git-diff-index.txt @@ -3,7 +3,7 @@ git-diff-index(1) NAME ---- -git-diff-index - Compares content and mode of blobs between the cache and repository +git-diff-index - Compares content and mode of blobs between the index and repository SYNOPSIS @@ -13,10 +13,10 @@ SYNOPSIS DESCRIPTION ----------- Compares the content and mode of the blobs found via a tree -object with the content of the current cache and, optionally +object with the content of the current index and, optionally ignoring the stat state of the file on disk. When paths are specified, compares only those named paths. Otherwise all -entries in the cache are compared. +entries in the index are compared. OPTIONS ------- @@ -49,22 +49,22 @@ Cached Mode ----------- If '--cached' is specified, it allows you to ask: - show me the differences between HEAD and the current cache + show me the differences between HEAD and the current index contents (the ones I'd write with a "git-write-tree") For example, let's say that you have worked on your working directory, updated -some files in the cache and are ready to commit. You want to see eactly +some files in the index and are ready to commit. You want to see exactly *what* you are going to commit is without having to write a new tree object and compare it that way, and to do that, you just do - git-diff-index --cached $(cat .git/HEAD) + git-diff-index --cached HEAD Example: let's say I had renamed `commit.c` to `git-commit.c`, and I had done an "git-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 $(cat .git/HEAD) + torvalds@ppc970:~/git> git-diff-index --cached HEAD -100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 commit.c +100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 git-commit.c @@ -92,16 +92,16 @@ which is obviously a very useful question too, since that tells you what you *could* commit. Again, the output matches the "git-diff-tree -r" output to a tee, but with a twist. -The twist is that if some file doesn't match the cache, we don't have +The twist is that if some file doesn't match the index, we don't have a backing store thing for it, and we use the magic "all-zero" sha1 to show that. So let's say that you have edited `kernel/sched.c`, but have not actually done a "git-update-index" on it yet - there is no "object" associated with the new state, and you get: - torvalds@ppc970:~/v2.6/linux> git-diff-index $(cat .git/HEAD ) + torvalds@ppc970:~/v2.6/linux> git-diff-index HEAD *100644->100664 blob 7476bb......->000000...... kernel/sched.c -ie it shows that the tree has changed, and that `kernel/sched.c` has is +i.e., it shows that the tree has changed, and that `kernel/sched.c` has is not up-to-date and may contain new stuff. The all-zero sha1 means that to get the real diff, you need to look at the object in the working directory directly rather than do an object-to-object diff. @@ -110,7 +110,7 @@ NOTE: As with other commands of this type, "git-diff-index" does not actually look at the contents of the file at all. So maybe `kernel/sched.c` hasn't actually changed, and it's just that you touched it. In either case, it's a note that you need to -"git-upate-cache" it to make the cache be in sync. +"git-update-index" it to make the index be in sync. NOTE: You can have a mixture of files show up as "has been updated" and "is still dirty in the working directory" together. You can always