问题标签 [git-rerere]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2063 浏览

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

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

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

有没有更好的方法来做到这一点?我错过了 git rerere 的一些标志?

0 投票
4 回答
13366 浏览

git - 启用 git rerere 有什么缺点吗?

0 投票
2 回答
1194 浏览

git - 我是否必须提交合并才能使 git-rerere 记录我的冲突解决方案?

我正在使用git-rerere它的预期目的,随着这些分支的发展逐渐记录两个分支(主分支和主题分支)之间的冲突解决方案,而不会创建不必要的合并提交。但是,即使在阅读了 git-rerere 联机帮助页之后,我也不清楚 rerere 何时实际记录了我的冲突解决方案。我检测和解决新合并冲突的标准工作流程是git merge master从主题分支开始,解决冲突,然后暂存所有文件并使用 提交合并git commit -m "Finished test merge",然后使用 撤消合并git reset --hard HEAD^,只留下由git-rerere.

然而,这似乎有点愚蠢。创建提交然后撤消它只是为了记录解决方案?阅读手册页后git-rerere,我仍然不清楚它何时记录我的决议。仅暂存冲突文件是否足够,或者我是否真的需要在解决冲突后创建合并提交,就像我一直在做的那样?

0 投票
2 回答
277 浏览

xml - git rerere 如何找出两个冲突之间的相似之处?

好的,这是我的问题。“git rerere”是否比较两个文件的哈希值以找出分辨率?也就是说,假设我有一个包含此标记的 XML 文件:

当我遇到冲突时,该数字通常会更改为 13、14 等,所以我坚持:

即使数字与上次不同,rerere 是否可以自动解决此冲突?我总是希望它以采用更高数字的方式解决它(在上面的示例中,13)。那么如果它记录了数字 12 和 13 的分辨率,它会解决与不同数字的冲突吗?我怀疑它不会,但不妨问问。

0 投票
2 回答
5574 浏览

git - 共享rerere缓存

我看到人们建议所有开发人员在他们的机器上设置一个从C:\project\.git\rr-cache共享文件夹到共享文件夹的符号链接\\server\rr-cache

但是,如果可能的话,通过将文件夹包含在 git 存储库本身中来共享文件夹似乎更方便。我见过人们提到这个解决方案,但实际上并没有提到如何去做。

有任何想法吗?

0 投票
1 回答
221 浏览

git - 用于避免日志中出现大量合并噪音的 Git 工作流程

我们目前有一个工作流程,其中master有更长期的功能发布分支和编号的分支,例如3.0下周左右发布的版本。

在上面的例子中,我们将最后一分钟的更改推送到3.0需要合并到 master 中。如果我们不经常合并,我们最终会master过时而没有最近的更改。如果我们边走边合并,我们会得到充满从3.0to合并的日志master

看似神奇的命令git-rerere似乎可以解决这个问题,但只针对需要更新的本地主题分支。换句话说,如果3.0只在一个人的机器上而不是公开的,它就可以工作。

有没有办法让 master 保持最新而没有所有丑陋的合并噪音?我了解 rerere 的用法吗?

0 投票
3 回答
121 浏览

git - 如何编辑包含数百次合并的 Git 提交并将冲突合并到过去?

我需要在存储库历史的最开始附近修改提交。自那次提交以来,可能已经有数百个分支、合并和合并冲突。

我尝试使用带有 --preserve-merges 选项的交互式 rebase,但我仍然收到数百个类似于“CONFLICT(内容):Foobar.cpp 中的合并冲突”的冲突错误。如果不是不可能的话,再次手动重新解决它们是非常不切实际的。

我听说过“rerere”功能,但只是现在,所以我还没有启用它。

0 投票
1 回答
1571 浏览

git - git rerere 不会自动提交自动更新的合并解决方案

我正在尝试使用共享的 rerere 缓存来自动化一次性集成/测试分支。

这个想法是,当分支被推送时,rerere 缓存应该是最新的,这样这些合并总是会通过。但是,它们不会:

在这一点上,rerere 已经上演了它记得的决议,并且不存在实际冲突。我可以运行git commit,然后继续,但我的 integration-test-build 脚本出现错误。我尝试添加--rerere-autoupdate到 git merge 命令,但没有任何变化。我已将 repo 配置为启用和自动应用 rerere 匹配。

如果足够,我如何要求 git merge 使用我以前的解决方案并继续而不失败?

0 投票
1 回答
17640 浏览

git - 撤消在 rebase 中完成的 git rerere 解析

好的,所以我真的很喜欢这个git rerere命令,虽然除了让它自动神奇地记录我的冲突并为我解决它们之外,我并没有真正使用过它。但是,在相当大的变基(使用最新版本变基一个非常陈旧的功能分支)期间,我确实搞砸了我的一个冲突解决方案。

所以,比如说b'有一个不正确的合并(感谢我!),我想重新记录。我该怎么做?我已经看到了Rerere Your Boatgit checkout --conflict中提到的选项,但我不太清楚它是如何工作的,以及它是否适用于这里。也许我必须检查合并冲突状态并在正确解决此冲突后运行?git rerere

通常,我只会提交 rebase 分支的尖端,但它是一个扔掉。我只是想提前处理冲突,这样当我与那个功能团队同步时,我们可以最大限度地减少花费的时间。说得通?

0 投票
0 回答
87 浏览

git - 为什么 git rerere 拒绝解决一些冲突?

我正在尝试使用 git-rerere,但它只是拒绝解决一些冲突,即使重复完全相同的合并也是如此。我不知道这些冲突有什么特别之处,也不知道为什么要跳过它们。Rerere 似乎没有任何详细模式或任何方式来解释为什么它解决了某些冲突而不是其他冲突。

什么样的条件会导致 rerere 跳过冲突?

注意:它说它正在记录我的冲突,但它只是在合并时跳过它们。