2016-07-30 49 views
1

好吧,现在我似乎已经走了,得到的东西都搞砸了。切换分支提示保存文件

我想了解Git是如何工作的以及如何在Visual Studio/TFS 2015.3环境中使用它。

问题出在这里:当我创建一个分支并对其进行更改时 - 例如添加一个新的SomeClass类-VS现在询问我是否想要在双击切换分支时保存已更改的项目。这种行为是新的 - 以前我可以在没有这种提示的情况下切换分支。

忍耐与我在这里...我需要给你一个悠久的历史,所以你会知道整个上下文。

我设法得到一个VS解决方案与远程回购同步。我跑了我的第一个TFS构建,我非常兴奋。然而,构建产生了一个警告,说没有测试运行。很公平;我没有包括一个测试项目。于是我创建了一个名为add-test-project的新本地分支并添加了该项目。

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

所以我做了合并/提交/拉请求/同步的事情(我不记得是如何或以什么顺序),它似乎已经工作 - 构建没有注册此警告。

(旁注:当我做拉入请求我有点失望地看到VS在我的默认打开相应的TFS网页浏览器,我本来想要做这一切的IDE内)

我已经决定跳过整个请求,因为1)我想留在IDE中,2)我在单独工作,所以这是一个不必要的步骤。这是我认为最终导致我的麻烦。然后我做了更多的分支/同步/提交/合并周期(就像我说过的,我不记得,也不完全确定我按照哪种顺序/应该这样做 - 而且每个周期都有不同的顺序我确定)。现在我不能在不提示保存更改的情况下切换分支。这两个分支都有这些变化。

我的本地Git仓库被破坏了吗?我尝试使用文件资源管理器删除.git.vs隐藏文件夹,重新打开VS并重新克隆回购,但问题依然存在。

我该如何回到原来的位置,我可以在哪里切换分支以查看特定于当前分支的代码状态?也许以某种方式从服务器上删除所有提交?但我没有找到办法做到这一点。

我确信我可以用'焦土解决方案'来解决这个问题。把所有东西都抹掉,从头开始,但我想知道我做错了什么(以及如何解决它),所以我可以避免再次这样做。

编辑

值得一提的是,现在事情已经过去了这么惨,当我在做一个类文件e.g的变化。添加一个构造函数-VS不再在该文件旁边放置一个红色复选标记。有东西真的在这里横向走了。

回答

1

好的,我想通了。我正在举办一个喜剧的错误。

首先,我将解释复选标记问题:事实证明我已经重新复制到一个完全不同的位置,所以我甚至没有打开正确的解决方案。因此,我不应该在早些时候只删除.git.vs文件夹,而应该删除本地的所有内容,并通过重新克隆到原始位置从头开始。

现在保存文件提示问题:我没有提交到我的本地回购更改。一旦我做到了,我可以在分支之间来回切换,并且这些更改如预期般反映出来。

现在我敢肯定,我已经得到了正确的顺序下降:

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

如果我对这个顺序不正确有人会这么说,或者我是否正确确认。谢谢。

编辑

我还建立了自己的新规则:使用相同的名称为当地回购为远程。

+1

是的,在更改分支之前,必须提交(或存储,但这完全是一个完全不同的命令)您的更改。是的,那是正确的顺序。 – ChallahuAkbar

+0

@ChallahuAkbar:很好,谢谢你:-) – InteXX