git status (nothing to commit, working directory clean), however with changes commited

后端 未结 5 1063
慢半拍i
慢半拍i 2020-12-13 02:15

I found many questions with similar subject, but I didn\'t found any practical guidance about this issue: why git status informs me nothing to commit, wor

相关标签:
5条回答
  • 2020-12-13 02:59

    I had the same issue because I had 2 .git folders in the working directory.

    Your problem may be caused by the same thing, so I recommend checking to see if you have multiple .git folders, and, if so, deleting one of them.

    That allowed me to upload the project successfully.

    0 讨论(0)
  • 2020-12-13 03:04

    Small hint which other people didn't talk about: git doesn't record changes if you add empty folders in your project folder. That's it, I was adding empty folders with random names to check wether it was recording changes, it wasn't. But it started to do it as soon as I began adding files in them. Cheers.

    0 讨论(0)
  • 2020-12-13 03:08

    Your local branch doensn't know about the remote branch. If you don't tell git that your local branch (master) is supposed to compare itself to the remote counterpart (origin/master in this case); then git status won't tell you the difference between your branch and the remote one. So you should use:

    git branch --set-upstream-to origin/master
    

    or with the short option:

    git branch -u origin/master
    

    This options --set-upstream-to (or -u in short) was introduced in git 1.8.0.

    Once you have set this option; git status will show you something like:

    # Your branch is ahead of 'origin/master' by 1 commit.
    
    0 讨论(0)
  • 2020-12-13 03:09

    The problem is that you are not specifying the name of the remote: Instead of

    git remote add https://github.com/username/project.git
    

    you should use:

    git remote add origin https://github.com/username/project.git
    
    0 讨论(0)
  • 2020-12-13 03:14

    git status output tells you three things by default:

    1. which branch you are on
    2. What is the status of your local branch in relation to the remote branch
    3. If you have any uncommitted files

    When you did git commit , it committed to your local repository, thus #3 shows nothing to commit, however, #2 should show that you need to push or pull if you have setup the tracking branch.

    If you find the output of git status verbose and difficult to comprehend, try using git status -sb this is less verbose and will show you clearly if you need to push or pull. In your case, the output would be something like:

    master...origin/master [ahead 1]

    git status is pretty useful, in the workflow you described do a git status -sb: after touching the file, after adding the file and after committing the file, see the difference in the output, it will give you more clarity on untracked, tracked and committed files.

    Update #1
    This answer is applicable if there was a misunderstanding in reading the git status output. However, as it was pointed out, in the OPs case, the upstream was not set correctly. For that, Chris Mae's answer is correct.

    0 讨论(0)
提交回复
热议问题