Git issue with Visual Studio 2015

2019-03-08 23:45发布

问题:

I have a Visual Studio solution inside a git repository created with TortoiseGit version 1.8.16.0 (git version 2.6.2.windows.1)

I just updated Visual Studio from 2015 to 2015 Update 1, and it stopped tracking changes on my files. also it won't allow me to commit anything.

Is this some sort of a known problem? are there any solutions?


update

(ironic title...) VS tracks unsaved files as "changed" and saved files appear to be "unchanged"

switching branches is behaves correctly and results in an error if there are uncommitted (real )changes


update 2

could this in the output window could have anything to do with the error:

Opening repositories:

Could not open 'C:/[project path].VC.opendb': The process cannot access the file because it is being used by another process.

Could not open 'C:/[project path].VC.opendb': The process cannot access the file because it is being used by another process.

回答1:

I had the exact same issue as you and spent hours trying to get it to work, including re-cloning.

I solved it on my end by adding the *.VC.opendb and *.VC.db files to the .gitignore file of my project.

As soon as I returned to Visual Studio all my pending changes were showing. As far as I can tell it's all working normally again.



回答2:

I have same issue with db.lock file ...

Solution with images are as follow:

Git will ignore these files for next commit.



回答3:

Since the Visual Studio 2015 update 1 release notes and its "Known Issues and Fixed Bugs" page does not mention anything related to Git, try to:

  • make a fresh clone of your repo from the command line (git clone)
  • import the solution in Visual Studio and check if the git repo is detected

Or:

  • make a new git repo with Visual Studio (as in "Visual Studio Code: How to integrate Git")

  • check that you can add new files
  • close Visual Studio
  • overwrite that new repo by your own (delete and replace the .git by your own, and copy your worktree over the one used by Visual Studio)


回答4:

Simpler solution which worked for me (also for VS 2017): open .git\config file and change

bare: true

to

bare:false


回答5:

To make VS 2015 not show the unmodified files, you need to set core.autocrlf=false in your Git configuration by console. It sames newer versions of git core includes one new line on file with crlf (VS doesn't show the new line).

To set it through all your repositories write

git config core.autocrlf false

and it will be deactivated.