git - 仅合并 git 分支中的增量更改
问题描述
我们有 2 个 git 分支——master 和 dev。master 包含要部署到生产环境的文件,而 dev 只包含需要修改的文件。
在任何时候,主 git 分支都会有 10 多个文件,而开发只有 1 个。
现在,问题是如果我们从 dev 合并 master 它将删除所有文件并只保留 dev 分支中可用的 1 个文件。
我们正在寻找的是保持 master 中的所有文件不变,只更新 dev 中的 1 个文件(类似于 rsync)。
知道我们如何在 git 中实现增量合并吗?
解决方案
似乎dev
拥有所有文件,后来在某些时候只保留了一个文件,而其他文件则被删除了。
当您想从 to 应用提交dev
时master
,您可以使用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
推荐阅读
- python - Bigquery 的 GCP 云函数 JOIN 语句
- amazon-web-services - 多次 OOMKill 重启后的 AWS EKS + Fargate 错误
- sql - 将 SQL 中的前 N 个类别与“其他”中的所有其他类别相加
- c++ - 数独求解程序 - 输出没有变化
- typescript - 如何将此接口从 C# 转换为 TypeScript?
- vue.js - Vuex getter 在模块内部时没有反应
- axios - 是否可以在独立的 axios 服务文件中使用 $config 代替 process.env 访问 Nuxt runtimeConfig 值?
- html - VueJS 构建后 CSS 未正确应用
- c++ - 递归内存“树”:正确释放内存
- python - 带有 Python 请求的 Elasticsearch:msearch 请求必须由换行符终止