Why is git diff only working with option --cached?











up vote
1
down vote

favorite












If I execute git diff file.php then I don't get any response.



I always have to execute git diff --cached file.php.



Why is --cached not automatically executed and why do I have to do this?



I am using git version 2.17.0.windows.1










share|improve this question


























    up vote
    1
    down vote

    favorite












    If I execute git diff file.php then I don't get any response.



    I always have to execute git diff --cached file.php.



    Why is --cached not automatically executed and why do I have to do this?



    I am using git version 2.17.0.windows.1










    share|improve this question
























      up vote
      1
      down vote

      favorite









      up vote
      1
      down vote

      favorite











      If I execute git diff file.php then I don't get any response.



      I always have to execute git diff --cached file.php.



      Why is --cached not automatically executed and why do I have to do this?



      I am using git version 2.17.0.windows.1










      share|improve this question













      If I execute git diff file.php then I don't get any response.



      I always have to execute git diff --cached file.php.



      Why is --cached not automatically executed and why do I have to do this?



      I am using git version 2.17.0.windows.1







      git






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 20 mins ago









      Black

      4,21784194




      4,21784194
























          2 Answers
          2






          active

          oldest

          votes

















          up vote
          2
          down vote



          accepted










          git diff <file> compare the file in working dir vs in index.



          So if you already added the file (by git add) from working dir to index, then:




          1. there is no diff between working dir and index.

          2. but there is diff between the current commit (pointed by HEAD) and index, this diff is shown with the --cached option.





          share




























            up vote
            1
            down vote













            The purpose of the git diff command is to compare the state of your index with your files present on your filesystem.

            That of the git diff --cached command is to compare the state of your index with the commit your are pointing onto.



            If you did changes to your file file.php that you did not already stage (using git add), then you should use git diff in order to see the changes.

            But if you already did git add on this file, then a copy has been placed in your index, so to see the changes, you have to use the git diff --cached command.






            share|improve this answer










            New contributor




            mistiru is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.


















            • You are right, there is no output after adding the file to the staging area! Thx!
              – Black
              10 mins ago










            • "that you did not already commit" should probably read "that you did not already stage/add"
              – ohlec
              6 mins ago










            • Thank you @ohlec, I typed too quicly ^^"
              – mistiru
              3 mins ago











            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53204338%2fwhy-is-git-diff-only-working-with-option-cached%23new-answer', 'question_page');
            }
            );

            Post as a guest
































            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            2
            down vote



            accepted










            git diff <file> compare the file in working dir vs in index.



            So if you already added the file (by git add) from working dir to index, then:




            1. there is no diff between working dir and index.

            2. but there is diff between the current commit (pointed by HEAD) and index, this diff is shown with the --cached option.





            share

























              up vote
              2
              down vote



              accepted










              git diff <file> compare the file in working dir vs in index.



              So if you already added the file (by git add) from working dir to index, then:




              1. there is no diff between working dir and index.

              2. but there is diff between the current commit (pointed by HEAD) and index, this diff is shown with the --cached option.





              share























                up vote
                2
                down vote



                accepted







                up vote
                2
                down vote



                accepted






                git diff <file> compare the file in working dir vs in index.



                So if you already added the file (by git add) from working dir to index, then:




                1. there is no diff between working dir and index.

                2. but there is diff between the current commit (pointed by HEAD) and index, this diff is shown with the --cached option.





                share












                git diff <file> compare the file in working dir vs in index.



                So if you already added the file (by git add) from working dir to index, then:




                1. there is no diff between working dir and index.

                2. but there is diff between the current commit (pointed by HEAD) and index, this diff is shown with the --cached option.






                share











                share


                share










                answered 9 mins ago









                Kata

                817410




                817410
























                    up vote
                    1
                    down vote













                    The purpose of the git diff command is to compare the state of your index with your files present on your filesystem.

                    That of the git diff --cached command is to compare the state of your index with the commit your are pointing onto.



                    If you did changes to your file file.php that you did not already stage (using git add), then you should use git diff in order to see the changes.

                    But if you already did git add on this file, then a copy has been placed in your index, so to see the changes, you have to use the git diff --cached command.






                    share|improve this answer










                    New contributor




                    mistiru is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.


















                    • You are right, there is no output after adding the file to the staging area! Thx!
                      – Black
                      10 mins ago










                    • "that you did not already commit" should probably read "that you did not already stage/add"
                      – ohlec
                      6 mins ago










                    • Thank you @ohlec, I typed too quicly ^^"
                      – mistiru
                      3 mins ago















                    up vote
                    1
                    down vote













                    The purpose of the git diff command is to compare the state of your index with your files present on your filesystem.

                    That of the git diff --cached command is to compare the state of your index with the commit your are pointing onto.



                    If you did changes to your file file.php that you did not already stage (using git add), then you should use git diff in order to see the changes.

                    But if you already did git add on this file, then a copy has been placed in your index, so to see the changes, you have to use the git diff --cached command.






                    share|improve this answer










                    New contributor




                    mistiru is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.


















                    • You are right, there is no output after adding the file to the staging area! Thx!
                      – Black
                      10 mins ago










                    • "that you did not already commit" should probably read "that you did not already stage/add"
                      – ohlec
                      6 mins ago










                    • Thank you @ohlec, I typed too quicly ^^"
                      – mistiru
                      3 mins ago













                    up vote
                    1
                    down vote










                    up vote
                    1
                    down vote









                    The purpose of the git diff command is to compare the state of your index with your files present on your filesystem.

                    That of the git diff --cached command is to compare the state of your index with the commit your are pointing onto.



                    If you did changes to your file file.php that you did not already stage (using git add), then you should use git diff in order to see the changes.

                    But if you already did git add on this file, then a copy has been placed in your index, so to see the changes, you have to use the git diff --cached command.






                    share|improve this answer










                    New contributor




                    mistiru is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.









                    The purpose of the git diff command is to compare the state of your index with your files present on your filesystem.

                    That of the git diff --cached command is to compare the state of your index with the commit your are pointing onto.



                    If you did changes to your file file.php that you did not already stage (using git add), then you should use git diff in order to see the changes.

                    But if you already did git add on this file, then a copy has been placed in your index, so to see the changes, you have to use the git diff --cached command.







                    share|improve this answer










                    New contributor




                    mistiru is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.









                    share|improve this answer



                    share|improve this answer








                    edited 4 mins ago





















                    New contributor




                    mistiru is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.









                    answered 12 mins ago









                    mistiru

                    114




                    114




                    New contributor




                    mistiru is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.





                    New contributor





                    mistiru is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.






                    mistiru is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.












                    • You are right, there is no output after adding the file to the staging area! Thx!
                      – Black
                      10 mins ago










                    • "that you did not already commit" should probably read "that you did not already stage/add"
                      – ohlec
                      6 mins ago










                    • Thank you @ohlec, I typed too quicly ^^"
                      – mistiru
                      3 mins ago


















                    • You are right, there is no output after adding the file to the staging area! Thx!
                      – Black
                      10 mins ago










                    • "that you did not already commit" should probably read "that you did not already stage/add"
                      – ohlec
                      6 mins ago










                    • Thank you @ohlec, I typed too quicly ^^"
                      – mistiru
                      3 mins ago
















                    You are right, there is no output after adding the file to the staging area! Thx!
                    – Black
                    10 mins ago




                    You are right, there is no output after adding the file to the staging area! Thx!
                    – Black
                    10 mins ago












                    "that you did not already commit" should probably read "that you did not already stage/add"
                    – ohlec
                    6 mins ago




                    "that you did not already commit" should probably read "that you did not already stage/add"
                    – ohlec
                    6 mins ago












                    Thank you @ohlec, I typed too quicly ^^"
                    – mistiru
                    3 mins ago




                    Thank you @ohlec, I typed too quicly ^^"
                    – mistiru
                    3 mins ago


















                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53204338%2fwhy-is-git-diff-only-working-with-option-cached%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest




















































































                    Popular posts from this blog

                    Guess what letter conforming each word

                    Port of Spain

                    Run scheduled task as local user group (not BUILTIN)