使用 git 2.42.0.windows.2 和 Bash 控制台,我有一个分支 H,对模块 V 进行了一些更改(其中一些来自另一个分支 O)、一个新模块 L 和一个来自的模块 C另一个相同的分支 O,但我不使用它。
主分支 D 有较旧版本的 V,但既没有 L 也没有 C。我想更新 D,使其具有最新的 V 和 L,但没有 C。这将产生一个新的提交,我将其称为 D1 .
就 Git 而言,这是一件有意义的事情吗?做这个的最好方式是什么 ?即使我的分支 H 有模块 C,但 D1 没有,我的分支 H 是否会被视为 D1 的父级?
我的目标是直接从主分支 D 继续我在模块 L 上的工作,带来最新版本的 V,但忽略模块 C(无论在分支 O 上工作的人稍后都会将其带到 D,但按照他们自己的条件和在他们自己的时间)。
---------------------------------------------------------------------D
\
------------------------------- O
(work on V, creation of C) \
-------------------------------- H
(work on V, creation of L)
这就是挑选樱桃的用武之地吗?还有其他选择吗?
从 D 创建一个新分支
git checkout D
git checkout -b new-branch
合并 H: 中的相关更改
git merge --no-commit H
这会将 H 中的所有更改带入新分支,而无需提交。
删除不需要的更改(模块 C): 完成更改并手动删除与模块相关的修改
提交更改:
git commit -m "Update D with latest V and L, excluding C"
将新分支合并到D:
git checkout D
git merge new-branch