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

问题描述 投票:-1回答:2

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

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

例:

  • 我正在分支-1上添加一个文件
  • 现在我可以改为分支-2
  • 在branch-2中,新文件也可用

那应该不行!它使分支无用!我怎样才能解决这个奇怪的行为?

谢谢!斯特凡

编辑:也许我的例子不是最好的。我确信所有文件都被跟踪。我尝试另一个例子:

  • 我创建了一个新的分支“new_feature”
  • 在这个分支中,我对现有的feature.aspx文件进行了更改
  • feature.aspx正确列在“未提交的更改”区域中
  • 然后我改回主分支
  • 我期望得到一个未更改的feature.aspx(因为它已经工作了几个月)
  • 但feature.aspx包含我的更改,并列在master分支的“未提交更改”下

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

更新:

我发现了以下内容:如果我在new_feature分支中的feature.aspx中提交更改并切换回主分支 - 那么我将返回unchange feature.aspx,因为我会将其删除。但这是一个潜在的错误来源!因此,如果当前分支中存在未经修改的更改,我似乎只想恢复限制,即无法更改分支。我在哪里可以找到这个设置?它是VisualStudio的一个功能还是GIT的一个功能?

git visual-studio branch checkout
2个回答
0
投票

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


0
投票

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

您添加的文件似乎超出了Git可以为您的解决方案跟踪的文件夹。要确定是什么,您需要找到.git文件夹 - 它是一个隐藏文件夹,因此请确保您能够在文件资源管理器中查看隐藏文件夹。通常,您可以在解决方案资源管理器中右键单击解决方案,然后从上下文菜单中选择“文件浏在那里,如果您的解决方案在Git源代码控制下,您应该看到.git文件夹。看一下.git文件夹的文件夹/文件路径,那就是Git root。有了这些信息,您需要确保添加的任何文件都被添加到该根文件夹或其子文件夹之一。根据您描述的内容,您将添加一个上面的文件 - 因此在您的解决方案的Git根目录之外,在这种情况下,无法跟踪新添加的文件。

© www.soinside.com 2019 - 2024. All rights reserved.