Visual Studio 2017-更改分支不会更改代码

时间:2019-03-18 15:27:13

标签: git visual-studio branch checkout

我的Visual Studio 2017(已安装最新版本)和GIT存储库中存在一个非常奇怪的问题。

几个星期以来,我能够切换到另一个分支,而无需提交我的代码更改。

示例:

  • 我正在研究branch-1并添加文件
  • 现在可以更改为branch-2
  • 在branch-2中,新文件也可用

那不行!它使分支变得无用!我该如何解决这种奇怪的行为?

谢谢!斯蒂芬

编辑: 也许我的榜样不是最好的。我确定所有文件都会被跟踪。我尝试另一个示例:

  • 我创建一个新的分支“ new_feature”
  • 在此分支中,我对现有的feature.aspx文件进行了更改
  • feature.aspx已正确列在“未提交的更改”区域中。
  • 然后我回到主分支
  • 我会找回不变的feature.aspx(因为它已经在服务器端使用了一个月)
  • 但featue.aspx包含我的更改,并列在 主分支的“未提交的更改”

在每个分支中-代码文件都相同。

更新:

我发现了以下内容:如果我在new_feature分支中提交了feature.aspx中的更改,然后又切换回master分支-那么我将按照原样返回unchange feature.aspx。但这是潜在的错误源! 因此,似乎我只想找回限制,如果当前分支中有未提交的更改,则无法更改分支。 在哪里可以找到此设置?是VisualStudio的功能还是GIT的功能?

2 个答案:

答案 0 :(得分:0)

如果该文件未跟踪,则Git没有分支之间该文件的内容差异的任何记录。如果该文件应该是该分支上存储库的一部分,则应提交该文件,或至少暂存该文件以进行提交并使用git stash。如果藏起来了,您可以git pop回到branch-1时将文件放回到索引中。

答案 1 :(得分:0)

虽然我同意Josh Gust的回答,但这是一种以Visual Studio为中心的方法:

您似乎要添加的文件不在Git可以跟踪您的解决方案的文件夹之外。要确定是什么,您需要找到.git文件夹-这是一个隐藏文件夹,因此请确保您能够在File Explorer中查看隐藏文件夹。通常,您可以在解决方案资源管理器中右键单击解决方案,然后从上下文菜单中选择在文件资源管理器中打开文件夹。进入该目录后,如果您的解决方案处于Git源代码管理下,则应该看到.git文件夹。看一下.git文件夹的文件夹/文件路径,这就是Git根目录。有了这些信息,您需要确保将添加的任何文件添加到该根文件夹或其子文件夹之一。根据您的描述,您要添加的文件位于解决方案的Git根目录之上(因此不在文件中),在这种情况下,无法跟踪该新添加的文件。