如何组合两个 git 历史记录并将新历史记录放在旧历史记录之上



我有两个完全不同的历史的 git 分支。

我需要做什么:

我需要获取分支 B 的历史记录并将其组合并放在分支 A 的历史记录之上。我想将分支 B "合并"到分支 A 中,但它们具有完全不同的历史记录。

我能做什么?

我认为您应该使用git rebase(因为在应用第一次提交时会遇到难以解决的冲突(,而是使用移植功能和执行git filter-branch

http://gitolite.com/archived/grafting.html

两个 Git 分支具有不同的提交历史记录是很常见的(至少从它们从父分支的那一刻起(。您希望从分支 B 获取所有提交并"将它们放在分支 A 的历史记录之上",因此看起来最合适的工具将是 git 变基。我看不到有关为两个分支执行的合并的任何信息,但我认为您不想保留所有合并。在这种情况下,我建议尝试使用

git checkout B
git rebase A --preserve-merges

在变基过程中可能会遇到一些冲突,因此以下命令也会有所帮助:

git add <some_file_with_conflict>
git rebase --continue

有关变基分支的更多信息,请参阅此 Git 变基文档和此 Git 手册

最新更新