git - 如何进行空合并提交(忽略更改)?
问题描述
自动化 CI 工具将修复从 . 合并release
到master
. 但是应该忽略来自发布分支的一些提交。
让我们考虑以下示例:
发布分支包含两个修复:fix-1
应该被忽略并且fix-2
应该合并到master
.
base ----------- merge-fix-2 - master
\ /
fix-1 --- fix-2 --- release
使用此配置合并fix-2
还包括fix-1
更改。
为了避免这种情况,我需要空的合并提交(ignore-fix-1
),只是为了通知fix-1
已经合并的 Git,这些更改应该在即将到来的合并中被忽略:
base -- ignore-fix-1 -- merge-fix-2 -- master
\ / /
fix-1 ----- fix-2 ---- release
问题是:如何做那个ignore-fix-1
空提交?
解决方案
您可以使用“我们的”合并策略,这正是您想要的:通过完全忽略传入的分支来执行“合并” -s ours
。git merge
也就是说,至少可以说,这对你的历史来说是一件令人惊讶的事情。我假设您有一个令人信服的理由不希望在master
.
- 拆分
release
为stable
(forfix-2
) 和production
(for ) ,fix-1
然后经常合并stable
为and 。master
production
- Cherry-pick 发布修复,而不是合并它们。
推荐阅读
- xcodebuild - iOS 14,为设备和模拟器创建库时出现 lipo 错误
- bash - 如何从 shell 脚本中的 .csv 文件的列中读取多个值
- javascript - 更新数据时无法在 deck.gl 中调用 set Props
- javascript - 函数参数值在 JS 中的对象解构中不起作用
- windows - 如何回到 PowerShell 中的最后一个命令输入位置?
- powershell - 以前没有 MFA 的帐户是否会继续使用 Exchange Online PowerShell V2 (EXO V2) 模块
- html - 如何在 HTML 网站的所有页面中隐藏 Safari 地址栏?
- amazon-web-services - 自定义 AWS Elasticbeanstalk EC2 日志
- jquery - 从 API URL 下载 PDF
- php - Laravel 调度程序 Cron 作业