Git 良好实践:合并某些文件的更改,忽略其他新文件

问题描述 投票:0回答:1

使用 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)
                    

这就是挑选樱桃的用武之地吗?还有其他选择吗?

git git-merge
1个回答
0
投票

从 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
© www.soinside.com 2019 - 2024. All rights reserved.