首页 > 解决方案 > 仅合并 git 分支中的增量更改

问题描述

我们有 2 个 git 分支——master 和 dev。master 包含要部署到生产环境的文件,而 dev 只包含需要修改的文件。

在任何时候,主 git 分支都会有 10 多个文件,而开发只有 1 个。

现在,问题是如果我们从 dev 合并 master 它将删除所有文件并只保留 dev 分支中可用的 1 个文件。

我们正在寻找的是保持 master 中的所有文件不变,只更新 dev 中的 1 个文件(类似于 rsync)。

知道我们如何在 git 中实现增量合并吗?

标签: gitmergedelta

解决方案


似乎dev拥有所有文件,后来在某些时候只保留了一个文件,而其他文件则被删除了。

当您想从 to 应用提交devmaster,您可以使用git cherry-pick ${commit_from_dev}.

如果您打算使用git merge,从一开始就应该创建dev为孤立分支。换句话说,不应该与创建时间dev共享任何历史记录。master

# at the point of creating dev
git checkout --orphan dev master
git rm ${unwanted_files}
git commit -m 'init dev'

# the first time to merge dev
git checkout master
git merge dev --allow-unrelated-histories

推荐阅读