【发布时间】:2017-10-21 16:23:04
【问题描述】:
我正在使用 Visual Studio Premium 2013 Update 5 来管理由多个项目组成的解决方案。我最后一次成功提交 Visual Studio Online 是在 10 月 18 日晚上。我的电脑在 19 日早上重新启动并安装了一堆 Microsoft 更新。我在 19 日做了一些小的开发工作。当我去提交我的更改时,我注意到当我在解决方案资源管理器中右键单击解决方案时,提交选项不可用。
在调查我无法提交的原因后,我注意到以下行为。我打开一个文件,进行更改,红色复选标记出现在文件名旁边,该文件出现在 Included Changes 下。当我保存文件时,红色复选标记消失,文件从包含的更改中消失。由于 Git 没有跟踪任何更改,因此无需向 Visual Studio Online 提交任何内容。我还注意到团队资源管理器 - 管理连接 - 本地 Git 存储库部分缺少项目的 Git 存储库 (/Portal)。
然后我使用 Visual Studio 2015 Ultimate Update 3 打开了另一个解决方案,我注意到我在管理连接下的 Git 存储库 (/Portal)。然后我能够执行 Git Status 并发现以下问题。见下图。
由于我的 Git 存储库 (/Portal) 丢失,我继续使用 Visual Studio 2013 再次克隆解决方案。Visual Studio 创建了一个新的 Git 存储库 (/Portal 2),它现在显示了我的原始存储库 (/Portal)也是。包含的更改中仍然缺少我最近的更改,因此它仍然无法正常工作。
在这个阶段,我不确定问题是损坏的文件还是更新 5,它是几个月前下载的,但似乎是在 19 日或 20 日安装的。
更新 1:
要求运行 git fsck。这是结果。
更新 2:
根据 code_fodder 评论,我继续测试使用新的 repo (/Portal 2) 进行代码更改。它按预期工作。我对文件进行了更改,保存文件后仍然显示红色检查。我还运行了 Git Status,没有报告任何问题。
更新 3:
最后一条语句(git push -u origin share)产生以下错误。
Git UI 中也缺少 Share 分支。
非常感谢任何帮助。
【问题讨论】:
-
你试过运行
git fsck吗? -
我刚刚运行它。请参阅更新 1。谢谢!
-
我总是觉得 Visual Studio 集成有点可疑。你可以在命令行上重新克隆它吗?
git clone <url-to-clone>,然后试试 git status... -
我添加了恢复repo的答案,你可以试试。
-
这是本地问题。它可以在您最近提交的顶部恢复损坏的提交。例如,在尝试提交对提交
B的更改时,本地 repo 损坏之前的最后一次提交是A。之后,即使您的远程仓库也有新的更改提交C(目前是最新提交),该操作旨在在最新提交C之后将更改恢复为提交B'。提交历史将如下所示:..---A---C---B'。是的,命令应该由 git 命令行执行(例如 cmd、git bash 等)。
标签: git visual-studio-2013 azure-devops