Visual Studio 2013不再通过Visual Studio Online使用Git跟踪更改

Visual Studio 2013不再通过Visual Studio Online使用Git跟踪更改,git,visual-studio-2013,azure-devops,Git,Visual Studio 2013,Azure Devops,我正在使用Visual Studio Premium 2013 Update 5来管理由多个项目组成的解决方案。我最后一次成功地向Visual Studio Online承诺是在10月18日晚上。我的电脑在19日早上重新启动,并安装了一系列微软的更新。我在19号做了一些小的开发工作。在提交更改时,我注意到在解决方案资源管理器中右键单击解决方案时,提交选项不可用 在调查我为什么不能进行提交时,我注意到以下行为。我打开一个文件,进行更改,红色复选框显示在文件名旁边,文件显示在包含的更改下。当我保存文

我正在使用Visual Studio Premium 2013 Update 5来管理由多个项目组成的解决方案。我最后一次成功地向Visual Studio Online承诺是在10月18日晚上。我的电脑在19日早上重新启动,并安装了一系列微软的更新。我在19号做了一些小的开发工作。在提交更改时,我注意到在解决方案资源管理器中右键单击解决方案时,提交选项不可用

在调查我为什么不能进行提交时,我注意到以下行为。我打开一个文件,进行更改,红色复选框显示在文件名旁边,文件显示在包含的更改下。当我保存文件时,红色复选框消失,文件也从包含的更改中消失。由于Git没有跟踪任何更改,因此没有任何内容可提交给Visual Studio Online。我还注意到团队资源管理器-管理连接-本地Git存储库部分中缺少项目的Git repo/Portal

然后,我使用Visual Studio 2015 Ultimate Update 3打开了另一个解决方案,我注意到我的Git repo/Portal位于Manage Connections下。然后,我可以进行Git状态检查,并发现以下问题。见下图

由于我的Git repo/Portal丢失,我使用Visual Studio 2013再次克隆了该解决方案。VisualStudio创建了一个新的Git repo/Portal 2,现在它也显示了我原来的repo/Portal。包含的更改中仍缺少我最近的更改,因此它仍然无法正常工作

在这个阶段,我不确定是损坏的文件还是几个月前下载的Update 5,但似乎是在19日或20日安装的

更新1:

要求运行git fsck。以下是结果

更新2:

基于code_fodder注释,我继续使用新的repo/Portal 2测试代码更改。它按预期工作。我对一个文件进行了更改,保存该文件后,红色复选框仍然显示。我还运行了Git状态,没有报告任何问题

更新3:

最后一条语句git push-u origin share产生以下错误

Git UI中也缺少共享分支


非常感谢您的帮助。

如果您在对象损坏后没有更改任何文件,您可以恢复本地repo/Portal。具体步骤如下:

#In the directory for Portal
rm  -rf .git
git init
git remote add origin <repo URL> -f
git reset origin/share
git add .
git commit -m 'recovery the last commit before the repo corrupt'
git push -u origin share
...---A---C   share
执行上述命令后,恢复的提交B'将位于最新提交C的顶部。因此,提交历史记录将为:

...---A---C---B'   share

你试过运行git fsck吗?我刚运行过。请参阅更新1。谢谢我总是觉得VisualStudio集成有点可疑。可以在命令行上重新克隆它吗?git克隆,然后尝试git状态…我为恢复回购添加了一个答案,您可以尝试一下。这是本地问题。它的工作原理是在最新提交的基础上恢复损坏的提交。例如,在尝试提交提交B的更改时,本地repo损坏。在此之后,即使您的远程repo也有新的更改提交C最新提交,该操作的目标是在最新提交C之后将更改恢复为提交B。提交历史记录如下:…--A--C--B'。是的,这些命令应该通过git命令行执行,比如cmd、git bash等。这是解决git repo+1问题的一种聪明方法: