Troubleshooting misplaced .git directory (nothing

2019-01-14 00:11发布

问题:

I started getting this message. No matter what I edit and try to commit, it says there is nothing to commit. Looks like git does not see my working directory and looking somewhere else.

If I run git status it outputs the same:

nothing to commit (working directory clean)

If I create new branch and edit something, then same thing happens. This started happening when I needed to fix merge clashes. When I wanted to merge my one branch with master branch, I had to manually fix it and I needed my files to look exactly as in that branch overwriting master branch those same files. So I added those files and it let me merge it. But then no matter what I change it shows as there is nothing to commit.

What could be done here?

回答1:

Found what was wrong. I don't understand how, but .git directory path somehow was changed to other path than I was working in. So then anything I changed was not checked, because git was checking in other place. I noticed it, when I reinitialized it and it showed that it reinitialized entirely different directory. When I cd .. from my current directory and cd to it back again and then reinitialized yet again, then it switched back to correct .git directory and started seeing my changes.



回答2:

For people working in public open source projects, if you face this behaviour, it is most likely that the file you are editing is excluded from the git repository using .gitignore. I faced the same behaviour, and after hours I found that the file I was making the change is excluded in .gitignore because it is a settings file, and every one will have their own local version.



回答3:

This must have happened because by mistake you reinitialized git in the same directory. Delete the .git folder using the following command Go to repository you want to upload open the terminal and then use the following commands

  1. remove the .git repository sudo rm -r .git
  2. Now again repeat from initializing git repo using git init
  3. then git commit -m "first commit"
  4. git remote add origin https://github.com/user_name/repo
  5. git push -u origin master After that enter the username and password and you are good to go


回答4:

Check the location whether it's the right location of the git project.



回答5:

For anyone seeing this problem, the simplest solution I found was to just "git clone" your repo and delete the old directory. This should set up your pathing correctly by default.



回答6:

I had the same issue. The branch I was working on wasn't being tracked. The fix was:

git push orgin

This fixed it temporarily. To make the changes pertinently I:

git config push.default tracking


回答7:

In my case I had previously initialized a git directory where I was trying to create a new one. I just deleted all the old files and started from scratch.



回答8:

Here is another twist on it. My .gitignore file seemed to have been modified / corrupted so that a file I was ignoring

e.g.

/Project/Folder/StyleCop.cache

got changed to this (Note now 2 separate lines)

/Project/Folder
StyleCop.cache

so git was ignoring any files I added to the project and below.

Very weird, no idea how the .gitignore file was changed, but took me a while to spot. Once fixed, the hundreds of css and js files I added went in.



回答9:

On branch master Problem it is committed already nothing to commit (working directory clean) if faced this problem then just only use the following command

git push -u origin master

or

git reset
git add .
git commit -m "your commit message"
git push -u origin master


回答10:

Go to your workspace folder

  1. find .git folder
  2. delete the folder and its contents
  3. use git init command to initialize.

Now it will show what all the files can be committed.



回答11:

I just had this problem myself because I was in the wrong folder. I was nested 1 level in, so there were no git files to be found.

When I execute cd .. to the correct directory, I was able to commit, as expected.



回答12:

Encountered this while using SourceTree, fixed it by

  1. First stash your current uncommitted changes.
  2. Apply / Unstash the same changes using Sourcetree.

Worked like a charm.



回答13:

try removing the origin first before adding it again

git remote rm origin
git remote add origin https://github.com/abc/xyz.git


回答14:

Don't try commiting / adding files. Just run the following 2 commands (:

    git remote add origin http://xyzremotedir/xyzgitproject.git
    git push origin master


回答15:

if .git is already there in your dir, then follow:

  1. rm -rf .git/
  2. git init
  3. git remote add origin http://xyzremotedir/xyzgitproject.git
  4. git commit -m "do commit"
  5. git push origin master


回答16:

I have faced the same issue with git while working with angular CLI 6.1.2. Angular CLI 6.1.2 automatically initializes .git folder when you create a new angular project using Angular CLI. So when I tried git status - it was not detecting the whole working directory.

I have just deleted the hidden .git folder from my angular working directory and then initialized git repository again with git init. And now, I can see all my files with git status.



回答17:

Don't use git commit. Skip commit and it will work.

Just do the

git remote add origin 

and

git push