gpt4 book ai didi

Git rerere 文件模式?

转载 作者:太空狗 更新时间:2023-10-29 14:23:09 25 4
gpt4 key购买 nike

是否可以配置 git rerere 使其仅记住特定文件模式并对其应用 merge 解决方案?即:就在模式 pom.xml 上。

最佳答案

这是一个棘手的问题,但我可以想到一个解决方案,该解决方案涉及在 merge 操作之后(但在任何手动解析之前)立即调用脚本。

首先,冲突解决方案的缓存 (.git/rr-cache) 按 blob 哈希而不是按文件路径存储。没有任何迹象表明决议实际上来自哪个文件,所以我认为破解该目录不是一个可行的解决方案。

This quote维护者 Junio Hamano 也强调 rerere 是按 merge 而不是按文件的事实:

There is no "I do not care if there are good resolutions remembered that do not have anything to do with the current merge, just remove all of them"---that is what "rm -fr .git/rr-cache" is for.

...这当然对您没有用,因为有选择地从 .git/rr-cache 中删除文件不太适合您的用例中的自动化。

要利用的功能可能是采用路径规范的 forget 子命令。然而,“遗忘”只能在 merge 的上下文中发生,这使得它从根本上不同于 .gitignore 之类的静态应用。

但是,可以想象您可以有一个调用脚本的 merge 后 Hook :

遍历冲突文件:

git diff --name-only --diff-filter=U

对于每一个你想要“un-rerere”的文件,忘记它吧:

git rerere forget -- path/to/file

...并恢复冲突:

git checkout -m path/to/file

然后,继续像往常一样进行 merge ,保留您想要完整记住的文件的相关分辨率。

可以将要“rerere remembered”的文件列表 checkin 存储库(可能在名为 .reremember 的文件中)并从脚本中查询。

关于Git rerere 文件模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31734359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com