我正在尝试使用共享的rerere缓存来自动化一次性的集成/测试分支。
其思想是当分支被推送时,rerere缓存应该是最新的,这样这些合并总是通过。然而,它们并不:
>>> git merge --no-ff invoicing
Staged 'analysisrequest.py' using previous resolution.
Staged '__init__.py' using previous resolution.
Auto-merging __init__.py
CONFLICT (content): Merge conflict in __init__.py
Auto-merging analysisrequest.py
CONFLICT (content): Merge conflict in analysisrequest.py
Automatic merge failed; fix conflicts and then commit the result.
现在rerere已经完成了它记忆中的解决方案,不存在实际的冲突。我可以运行git commit
,然后继续,但是我的integration-test-build脚本看到了一个错误。我尝试将--rerere-autoupdate
添加到git merge命令中,但是没有任何变化。我已经配置了repo来启用和自动应用rerere匹配。
我怎样才能让git merge使用我之前的解决方案,并且在它们足够的情况下继续运行呢?
1条答案
按热度按时间qv7cva1a1#
即使有了
--rerere-autoupdate
标志,git merge
似乎也不愿意在没有人工输入的情况下自动完成合并,而是以错误状态执行,集成工具拒绝继续。我不知道你的自动合并是如何发生的,也就是说,你是否可以改变执行的Git命令,如果可以,那么你可以执行下面的命令。
git rerere diff
列出了rerere
之后需要解析的文件。--no-edit
是防止打开提交消息编辑器所必需的。rerere
无法干净地合并所有更改,此语句仍将返回错误状态,并且合并将不会提交。exit 1
需要在$()
内部,除非你想退出你的shell。(猜猜我是怎么知道的。:-)