【问题标题】:git : how to create a merge with a known outcomegit:如何创建具有已知结果的合并
【发布时间】:2011-07-31 15:16:53
【问题描述】:

我正在 git 中从项目早期开发期间拍摄的一系列 zip 快照创建一个固定的项目历史。我们知道我们(我和他)在某些情况下,我们从基点 A 发散,然后将我们的两个版本 B 和 C 合并,重新合并为版本 D 的商定更新。通常我们使用 Beyond Compare,在一些地方我们更新了代码以解决冲突。

所以我可以在分支“his”上创建 A--B,并在分支“mine”上创建 A--C,没有任何问题。我只是不确定如何最好地创建一个已知结果为 D 的merge commit。我可以直接从 zip 文件中轻松设置索引/暂存区域,并在其中等待 D。

创建与预定义结果的 [双父提交] 合并的最佳命令是什么?就本例而言,“his”被视为主要父母。

【问题讨论】:

    标签: git merge commit


    【解决方案1】:

    只需做一个:

    git merge --no-commit ...
    

    然后用您已知的结果简单地压缩所有内容并提交应该会起作用。

    【讨论】:

    • 这是我不清楚的“简单地用你已知的结果和提交来压缩一切”位。我更习惯于从 rebase 设置中“挤压”。
    • 这部分是最简单的:只需将您的版本D 快照解压到您的工作目录顶部即可。
    • 我个人不喜欢add -A。我建议使用git add -i - 减少意外开始跟踪您不打算跟踪的内容的机会。但在这种情况下,我猜-A 可能没问题。
    • 干杯。棘手的一点是了解 git 何时/如何创建“此提交有两个父母”信息。
    猜你喜欢
    • 2020-12-27
    • 2020-03-14
    • 2016-09-05
    • 1970-01-01
    • 2011-01-18
    • 2013-06-17
    • 2011-09-01
    • 2016-05-05
    相关资源
    最近更新 更多