git - 如何合并两个分支,几乎没有变化
问题描述
我正在使用 Visual Studio Code 并使用 git 作为 VCS,现在我从这个分支有一个名为X的分支我使用命令(git checkout -b Y )创建了另一个名为Y的分支,然后在Y分支中我添加了一些新代码以及对之前的代码进行了一些更改。
现在我只想将Y合并到X 中,而不是我添加的新代码。
在不提交子分支中所做的更改的情况下签出到父分支有什么问题?
解决方案
我不认为 agit merge
是适合您情况的正确过程。您可能希望向cherry-pick
根分支提交一两次(仅限那些不包含新文件的提交)。我建议这样做是因为 Git 的合并功能旨在将整个分支带入另一个分支。
话虽如此,有可能实现merge
并实现您的目标。为此,请在不让进merge
程生成commit
. 结果将是一组准备提交的更改。然后,您可以在进行最终提交之前修改暂存的更改(通过取消暂存您不想合并的文件)。
根据您上面的示例,您将首先结帐分支X,然后:
git merge Y --no-commit --no-ff
如果它是一个干净的合并,在上面的命令之后你应该会看到一条消息:
“自动合并进展顺利;在按要求提交之前停止”
从那时起,您可以取消暂存您不想合并的任何更改,然后git commmit
只合并所需的更改来执行 a。
推荐阅读
- json - 如何将解释为字符串的多个json对象转换为Json字典
- mysql - 如何在 MYSQL 中同时使用 LIKE 和 BETWEEN?
- laravel - 如何在 Laravel 的根目录中创建模块
- julia - 有没有办法从 Julia 的谷歌驱动器下载一个 excel 文件(带有多张表)?
- amazon-web-services - Athena 分区投影未按预期工作
- arrays - 哪个最适合点列表:点结构数组还是二维数组?
- c# - 如何使用 SpecFlow 使用不同的输入数据多次运行相同的场景?
- excel - VBA 粘贴特殊失败问题
- c++ - 当一个 try-catch 块与类似 Either 的 monad 结合时,可以解释为 monad 吗?
- node.js - 为什么 AWS Elastic Beanstalk 在运行 `assets:precomile` 时部署失败,因为它在 SSH 上运行时“进程内存不足”?