【发布时间】:2023-04-05 20:35:01
【问题描述】:
我能够使用 'fetch' 和 'checkout' 将文件从一个 RepoA 同步到 RepoB 到我的主人并处理冲突(如果有的话)。但是这种方法使我在 RepoB 上进行了“合并提交”。
有没有办法在不生成提交 ID 的情况下做到这一点? 我想安排所有提交,然后通过 chron-task 定期同步。
我还研究了 git-daemon 和 post-commit 钩子。如果可以,请举个例子。
【问题讨论】:
-
“处理冲突”是指创建有关如何解决冲突的数据。这些数据必须存储在某处,而该某处就是合并提交。即使没有冲突,合并提交也是使两个分歧的分支再次汇聚以合并两个变更集的原因。因此,在一般情况下,您无法避免合并提交。
-
能否rebase 帮助更改提交历史,以便以最后一次提交而不是最终合并提交结束?
-
@PratyushRaizada 是的,最简单的方法是简单地使用
git pull --rebase,有关详细信息,请参阅my answer。 -
这两个“初始提交”是否有不同的哈希值?然后观察到的行为是可以预期的,但是这个comment space is too narrow to explain ;)