可以设置自动解决 git 合并的问题吗?(git rerere)

4
我有两台笔记本电脑,使用一个明文文件作为第三方软件的数据库,需要将其同步。客户希望每天同步该文件的内容。
最初的想法是编写上传文件到Dropbox的脚本,但是如果发生冲突(两个用户都删除A行,第一个用户添加B行,第二个用户添加C行),Dropbox会创建一个单独的文件。编辑:本来想提到的,但忘了说:在冲突的情况下,B和C两行都应替换A行 - "取双方"策略。
第二个想法是把文件放入代码库,听起来很简单,但我不确定如何设置自动解决冲突,因为我不希望合并工具GUI在过程中出现。

你可以覆盖客户的修改吗? - Jossef Harush Kadouri
在冲突的情况下,您希望它执行什么操作?使用B和C两行中的任意一行,随机选择一行,还是其他操作? - David Deutsch
@DavidDeutsch 感谢提醒 - 我不知怎么忘了在问题中加上那个。已经编辑过了。应该使用B和C,顺序不重要。 - Vitalii Vasylenko
@JossefHarush 你好,需要做哪些修改?客户对Git或Dropbox一无所知 - 或许他知道,但并不关心 - 这就是为什么我想把所有东西放到一个脚本中,并定期运行它的原因 - 并且这也是为什么我想避免任何额外的GUI,以便他不会感到害怕。 - Vitalii Vasylenko
2个回答

4
你可以使用 git rerere 命令来帮助你。
这个命令的作用就在于此。

git rerere

Recorded Reused Resolution

# enabled the option to record the 
git config --global rerere.enabled true

顺便说一下,如果你更喜欢手动将文件重新加入暂存区(我比较喜欢这样做),你可以这样调整配置:

git config --global rerere.autoupdate true

enter image description here


听起来像是一个解决方案,谢谢,我今晚会检查它。 - Vitalii Vasylenko
1
很酷。这个系列里有一个很酷的视频,链接在 http://shop.oreilly.com/product/0636920017462.do - CodeWizard

1
如果您希望通过双方的更改来解决所有冲突,请将以下内容添加到您的.gitattributes文件中:
* merge=union

这将使git按照您的意愿执行。

关于文档,文件应该位于 $GIT_DIR/info/attributes,但是这个文件夹只包含一个名为“exclude”的文件。所以你需要先创建 .gitattributes 文件吗? - Chilly Code

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接