假设有一个没有历史记录的孤立分支(orphan
),我该如何将自孤立分支创建时起直到现在在master
分支上所做的更改合并到孤立分支中,而不必复制所有提交记录并将其推送到远程仓库。
A <- B <- C <- D
orphan(created from state B) <-X <- Y
我想将
c
和 d
带到孤儿分支,然后将 x
和 y
带到主分支。如果我执行
checkout orphan, merge master
或者 rebase master
,则孤儿分支会得到提交和完整的历史记录。例如,当我将孤儿分支推送到远程服务器时,每个人都能够看到全部 master
的历史记录。此外,我之后想将
orphan
合并回主分支,并将提交 x
和 y
带回主分支。编辑:现在使用
git merge
将孤儿分支合并回主分支可以正常工作。A <- B <- C <- D <------X <- Y
/
orphan <-X <- Y
但是,将master
合并回orphan
会将整个master
历史记录放入orphan
中(例如成为先于B
的X
),或者使用樱桃拣选,但我需要跳过合并提交,并且会遇到更多的冲突。
git checkout --orphan
创建的分支类型。因此,我无法从您的问题中得出任何意义。 - torekgit format-patch
生成补丁文件,然后在目标仓库中使用git am
应用它。 - jingxgit checkout --orphan
命令,然后紧接着使用git commit
命令,你可以创建一个分支,其历史记录与现有分支无关。或者更准确地说,你可以在提交图中从新的根提交开始创建一个单独的子图。但这不是Alex所画的内容。 - torek