【问题标题】:When I merge branchA to branchB, would the commits in branchB be updated with the ones I did previously in branchA?当我将一个分支合并到另一个分支时,分支中的提交是否会更新为我之前在 branchA 中所做的提交?
【发布时间】:2022-11-28 17:00:54
【问题描述】:

我在构建具有多个分支的应用程序时遇到了这个问题

我不仅期待代码,还期待我之前在上一个分支中所做的提交合并到一个新分支中

【问题讨论】:

  • 没有提交,一旦做出,就永远不会改变——但这是指通过其原始哈希 ID 找到的提交。但是,包含任何一个特定提交的一组分支,更改,即使提交本身已完全冻结。这是因为松散和模糊的是“一个分支”的想法!提交是可靠的;这分支机构很滑。
  • 正如 VonC 回答的那样,进行真正的合并会进行新的提交父母。这会导致尚未在当前分支上的提交突然“在”该分支上,而不会在任何地方更改任何提交。所以只在 branchA 上的提交现在在两个都分支和分支(在“git switch branch && git merge branchA”之后)。

标签: git


【解决方案1】:

一次合并只会在 branchB 上创建一个有两个父项的提交。

b--b--b--M (branchB)
        /
 a--a--a   (branchA)

如果您希望来自branchA 的提交成为branchB 的一部分,您需要变基branchA 首先在 branchB 之上,然后再将 A 合并到 B。

git rebase --onto branchB firstCommitofA~..branchA
git switch branchB
git merge branchA

那是:

b--b--b--a'--a'--a' (branchB)
                    (branchA)

【讨论】:

    猜你喜欢
    • 2018-03-12
    • 2016-03-23
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2011-01-03
    • 2018-08-12
    • 2021-08-21
    • 2011-05-06
    相关资源
    最近更新 更多