首页 > 解决方案 > 从主分支合并到发布分支后,Visual Studio 2017 未暂存的更改消失

问题描述

我需要将“Master”分支中的选定更改合并到“EnvT”分支。

在合并期间(从 Master 到 EnvT),假设对“Master”分支进行了大约 15 次更改,所有 15 次更改都是暂存的,并且在“暂存更改”中可用,但是在这 15 个更改中,我只想合并2 变化。所以我右键单击 13 个更改并“取消暂存”更改。解决合并冲突后,我将 2 个更改从 Master 分支合并到“EnvT”分支。我提交更改并将更改推送到“EnvT”来源。到目前为止一切都很好。

问题是,下次我从“Master”分支合并到“EnvT”分支时,我在之前的合并操作中“Unstaged”的 13 个更改不会出现在“Staged changes”下。无论我做什么,这些更改都不会在下一次从 Master 到 EnvT 的合并中恢复。

如果有人能对正在发生的事情有所了解,那就太棒了。任何帮助将不胜感激。

标签: gitvisual-studiogit-mergeunstage

解决方案


我找不到 Visual Studio 解决方案。该解决方案基于 Git Bash。

$ git diff --name-status EnvT..master| wc(获取EnvT分支和主分支之间差异的总计数)

$ git checkout EnvT(这是目标分支,它将接收来自“主”分支的更新)

$ git checkout master "C:/filefullpath/SQL/file1.sql" (提供文件的完整路径) 从18b47878更新了1个路径

$ 混帐状态

在要提交的分支 EnvT 更改:(使用“git restore --staged ...”取消暂存)修改:/SQL/file1.sql

$ git commit -m '将特定文件从主分支更新到本地分支' $ git diff --name-status EnvT..master| wc (最后得到更改的数量,应该有更少的差异)。

提交更改后,我在 Visual Studio 2017 上重新打开了分支并尝试从 Master 合并到 EnvT,我只看到尚未合并的更改。在 Visual Studio 合并期间,使用 Git Bash 完成的文件合并不会出现在变更集中。任务完成!

这些文章非常有帮助:

https://jasonrudolph.com/blog/2009/02/25/git-tip-how-to-merge-specific-files-from-another-branch/

如何合并来自 Git 分支的特定文件


推荐阅读