切换分支提示保存文件

Switching branches prompts to save file

好吧,现在我好像走了,把事情搞砸了。

我正在尝试了解 Git 的工作原理以及如何在 Visual Studio/TFS 2015.3 环境中使用它。

问题是:当我创建一个 b运行ch 并对其进行更改时——例如添加一个新的 SomeClass class——VS 现在问我是否要当我双击切换 b运行ches 时保存更改的项目。这种行为是新的——以前我可以在没有这样提示的情况下切换 b运行ches。

请耐心等待...我需要给你一段很长的历史,这样你就会了解整个背景。

我设法获得了与远程仓库同步的 VS 解决方案。我 运行 我的第一个 TFS 构建,我非常高兴。但是,该构建生成了一个警告,指出没有测试 运行。很公平;我没有包括一个测试项目。所以我创建了一个名为 add-test-project 的新本地 b运行ch 并添加了项目。

我发现在 VS 中我可以通过双击每个 masteradd-test-project 来回切换。我注意到 master b运行ch 不包含测试项目,但 add-test-project b运行ch 包含。这是有道理的;我还没有合并任何东西。

所以我做了 merge/commit/pull request/sync 事情(我不记得是如何做的或按什么顺序做了),它似乎起作用了——这次构建没有记录警告。

(旁注:当我执行拉取请求时,我有点失望地看到 VS 在我的默认浏览器中打开了相应的 TFS 页面——我本想在 IDE 中完成所有这些操作。 )

我决定跳过整个拉取请求,因为 1) 我想留在 IDE 和 2) 我正在单独工作,所以这是一个不必要的步骤。这就是我认为最终导致我遇到麻烦的原因。

然后我又做了几个 branch/sync/commit/merge 周期(就像我说的,我不记得也不确定我 did/should 做它们的顺序——每个周期都有不同的我确定的顺序)。现在我无法在不提示保存更改的情况下切换 b运行ches。并且 b运行ches.

中都存在更改。

我的本地 Git 存储库是否已损坏?我尝试使用文件资源管理器删除 .git.vs 隐藏文件夹,重新打开 VS 并重新克隆存储库,但问题仍然存在。

我怎样才能让事情回到原来的位置,在那里我可以切换 b运行ches 以查看特定于当前 b运行ch 的代码状态?也许以某种方式从服务器中删除所有提交?但我没有找到办法做到这一点。

我确定我可以用 'scorched-earth solution,' 来解决这个问题,例如清除所有内容并从头开始,但我想知道我做错了什么(以及如何解决),这样我就可以避免重蹈覆辙。

编辑

值得一提的是,现在事情变得如此糟糕,以至于当我在 class 文件中进行更改时——例如添加一个构造函数——VS 不再在该文件旁边放置一个红色复选标记。这里有些东西 真的 跑偏了。

好的,我明白了。我主持的是错误的喜剧。

首先我将解释复选标记问题:原来我已经重新克隆到一个完全不同的位置,所以我什至没有打开正确的解决方案。因此,与其之前只删除 .git.vs 文件夹,我应该在本地删除所有内容,然后通过重新克隆到原始位置从头开始。

现在是保存文件提示问题:我没有将更改提交到我的本地仓库。一旦我这样做了,我就可以在分支之间来回切换,并且更改会按预期反映出来。

现在我很确定我记下了正确的顺序:

  1. 新分支
  2. 进行所需的编码更改
  3. 本地提交
  4. 本地合并到 master
  5. 推送到远程

如果我对这个顺序不正确,有人会这样说吗,或者如果我是正确的,请确认。谢谢

编辑

我也为自己制定了一个新规则:对本地存储库使用与远程存储库相同的名称。