作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有两个分支:主干、生产。我在主干中发现了一个问题,修复并提交了它,推送了它。现在它已经过测试,我需要将更改作为热修复 merge 到生产分支中。我尝试使用 cherry-pick。但是它不起作用,因为修复中的更改文件在我不希望投入生产的一些重构过程中早些时候在主干中被重命名。
我不想 merge 所有内容,但只接受此提交。 cherry pick 因“已被我们删除”冲突而失败(当然,新文件甚至从未存在于生产分支中)。
将更改引入旧文件的正确方法是什么?
最佳答案
如果:
... 那么你绝对应该考虑像这样更改你的 git 配置:
$ git config merge.renameLimit 999999
在 merge/cherry-pick 期间,git 可能会在找到合适的重命名匹配之前达到默认文件检查限制(我认为是 400 或 1000 或类似的值)。提高此限制可能会导致 merge/cherry-pick 在搜索您重命名的文件时花费更长的时间,但它可以帮助避免“已被我们删除”的 merge 挑战。
这应该可以解决问题,但是如果您重命名的文件很小并且分支之间的更改很重要,您也可以使用 -X rename-threshold
设置,例如使用 -X rename-threshold=25%
将其从默认的 50% 降低。
关于git - 从重命名的文件向后移植更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772598/
我是一名优秀的程序员,十分优秀!