git - Visual Studio 2017 - 更改分支不会更改代码
问题描述
我的 Visual Studio 2017(安装了最新版本)和我的 GIT 存储库中有一个非常奇怪的问题。
几周后,我无需提交代码更改即可切换到另一个分支。
例子:
- 我正在处理分支 1 并添加一个文件
- 现在可以更改为 branch-2
- 在 branch-2 中,新文件也可用
那不应该工作!它使分支毫无用处!我该如何解决这种奇怪的行为?
谢谢!斯特凡
编辑:也许我的例子不是最好的。我确信所有文件都被跟踪。我尝试另一个例子:
- 我创建了一个新分支“new_feature”
- 在这个分支中,我对现有的 feature.aspx 文件进行了更改
- feature.aspx 在“未提交的更改”区域中正确列出
- 然后我改回主分支
- 我希望取回未更改的 feature.aspx(因为它已经工作了几个月)
- 但 feature.aspx 包含我的更改,并列在主分支的“未提交的更改”下
在每个分支中 - 代码文件都是相同的。
更新:
我发现了以下内容:如果我在 new_feature 分支中提交 feature.aspx 中的更改并切换回 master 分支 - 然后我会得到未更改的 feature.aspx,因为我会解释它。但这是一个潜在的错误来源!因此,如果当前分支中有未提交的更改,似乎我只想恢复限制,即我不能更改分支。在哪里可以找到这个设置?它是 VisualStudio 的功能还是 GIT 的功能?
解决方案
如果该文件未被跟踪,则 Git 没有任何关于该文件在分支之间的内容差异的记录。如果该文件应该是您在该分支上的存储库的一部分,您应该提交该文件,或者至少暂存它以供提交和使用git stash
。如果隐藏,您可以git pop
在返回branch-1
.
推荐阅读
- ios - 右 UIBarButtonItem 在 navigationBar 上显示一条垂直线
- google-app-engine - 如何在数据存储中定义 Key 类型?
- c# - ASP.NET Web API 将图像上传到 SQL Server 数据库
- java - 使用 Base32 编码和解码字符串
- arrays - 有没有办法在VBA中总结数组的指定段落
- linux - 如何从 bzimage(自定义内核)创建 uefi 可启动映像
- linux - shell脚本中的成绩计算
- nginx - 我们如何将请求的请求参数与 Nginx 中的字符串数组进行比较
- php - 将 web 应用程序转换为 android 和 ios 应用程序
- angular - Angular 4 - 限制特定范围的用户输入