git - 从主分支合并到发布分支后,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 的合并中恢复。
如果有人能对正在发生的事情有所了解,那就太棒了。任何帮助将不胜感激。
解决方案
我找不到 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/
推荐阅读
- flutter - 无法使用 just_audio 在 Flutter Android 中播放声音
- java - Android Java 随机数学除法一直显示“除以零”
- statistics - 如何确定 Gumbel 分布的均值和 Cov?
- delphi - OleVariant 和 SafeSysFreeString
- spring-boot - SpringBoot REST 生成pdf
- c# - 从 opencv mat/Array 到 OnnxRuntime 张量的转换优化?
- django - get() 返回了多个成员 -- 它返回了 11
- python - 训练标准 UNet 模型和进行 keras data_augmentation 时输入的尺寸不匹配?
- php - 如何启动具有依赖关系的服务而不在方法参数中声明它?
- reactjs - 在 React 受控组件中修改用户输入值