git rerere 是否会自动将文件标记为已解决?

发布于 2024-09-10 08:41:57 字数 284 浏览 4 评论 0原文

我正在使用 git rerere,它很有用,但有一个问题:当它自动解析文件时,它不会将其标记为已解析(例如使用 git add)。因此,如果我运行“git mergetool”,它会打开文件,就好像它仍然包含所有冲突一样。

到目前为止,我已经制作了一个可以调用的小 shell 脚本,它扫描所有标记为冲突的文件以查找冲突标记(例如 >>>>>>>) ,如果没有,则对它们调用 git-add 。

有更好的方法吗?我错过了一些 git rerere 标志?

I'm using git rerere, and it is useful, but there is one problem: When it automatically resolves a file, it does not mark it as resolved (eg with git add). So if I run 'git mergetool', it opens up the file as if it still has all the conflicts in it.

So far, I've made a small shell script which I can call, which scans all files marked as conflicted for conflict markers (eg >>>>>>>), and calls git-add on them if they have none.

Is there a better way of doing this? Some flag to git rerere I missed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

明天过后 2024-09-17 08:41:57

也许是 git 配置 设置可以帮助:

rerere.autoupdate

设置为 true 时,git -rerere 在使用先前记录的解决方案彻底解决冲突后,使用结果内容更新索引。
默认为 false。

注:从Git1.7.0开始,

git rerere”具有 rerere.autoupdate 配置,但无法从命令行取消它;
为“merge”、“revert”等提供的 --no-rerere-autoupdate 选项修复了此问题。


Git 2.38(2022 年第 3 季度)更新了有关“--[no-]rerere-autoupdate”选项的文档。

请参阅提交 cb54fc9(2022 年 8 月 3 日)和 提交 0dbc715(2022 年 7 月 15 日),作者 Junio C Hamano (gitster)
(由 Junio C Hamano -- gitster -- 合并于 提交 3adacc2,2022 年 8 月 14 日)

doc:澄清 rerere-autoupdate

--[no-]rerere-autoupdate”选项控制 rerere 机制启动后发生的情况,以重用记录的解决方案,并且不会阻止 rerere首先触发的机制。

当前文本中尚不清楚“--no-rerere-autoupdate”是否会停止自动解析。
重写句子以澄清。

rerere-options 现在包含在其 手册页

rerere 机制重用记录的解析后
当前工作中更新文件的冲突
树,允许它也用结果更新索引
分辨率。

--no-rerere-autoupdate 是一个好方法
仔细检查rerere做了什么并抓住潜力
在将结果提交到索引之前,会发生错误合并
单独的git add

Maybe a git config setting can help:

rerere.autoupdate

When set to true, git-rerere updates the index with the resulting contents after it cleanly resolves conflicts using previously recorded resolution.
Defaults to false.

Note: since Git1.7.0,

"git rerere" had rerere.autoupdate configuration but there was no way to countermand it from the command line;
--no-rerere-autoupdate option given to "merge", "revert", etc. fixes this.


Git 2.38 (Q3 2022) updates documentation on the "--[no-]rerere-autoupdate" option.

See commit cb54fc9 (03 Aug 2022), and commit 0dbc715 (15 Jul 2022) by Junio C Hamano (gitster).
(Merged by Junio C Hamano -- gitster -- in commit 3adacc2, 14 Aug 2022)

doc: clarify rerere-autoupdate

The "--[no-]rerere-autoupdate" option controls what happens after the rerere mechanism kicks in to reuse recorded resolutions and does not prevent from the rerere mechanism to trigger in the first place.

It is unclear in the current text if "--no-rerere-autoupdate" stops the auto-resolution.
Rewrite the sentence to clarify.

rerere-options now includes in its man page:

After the rerere mechanism reuses a recorded resolution on
the current conflict to update the files in the working
tree, allow it to also update the index with the result of
resolution.

--no-rerere-autoupdate is a good way to
double-check what rerere did and catch potential
mismerges, before committing the result to the index with a
separate git add.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文