如何将一个git的master分支提交添加到另一个git中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将一个git的master分支提交添加到另一个git中?相关的知识,希望对你有一定的参考价值。

我有一个git存储库,其主分支在xxx提交。这还包括一些分支机构。

主分支源(使用xxx提交)是在2年前从互联网上的一些git repo中提取的。但现在代码更新了该开源软件包。所以,我想使用最新的主分支代码。

但是不要影响我现有的现有分支机构。

所以请告诉我,我怎样才能将这些最新的提交到我现有的主人那里。我还需要最新master的所有提交。

答案

这是git rebase的完美用例。

如果我理解正确,你在提交A分叉/得到源。然后添加提交BCD。与此同时,添加的原始源代码提交XYZ,现在它看起来像A - X - Y - Z (master)。你的看起来像A - B(branch1) - C - D (master)。您希望保留旧的工作,但使用新的源代码。

首先,将您要保存的所有工作放入特定的命名分支。 (还要记住,如果您有提交的引用(分支),无论如何都可以恢复该状态。以下过程将移动分支,因此您可能想要创建“备份分支”):

# A - B(branch1, backup1) - C - D (master, branch2, backup2)
git checkout master && git reset --hard A 
# A(master) - B(branch1, backup1) - C - D (branch2, backup2)
git pull source # The remote corresponding to the open source repo
# A - B - C - D (branch2, backup2)
#   - X - Y - Z (master)
git rebase master branch1
git rebase branch1 branch2
# A - X - Y - Z (master) - B' (branch1) - C' - D' (branch2)

如果这不是你想要的,请在下方评论。

另一答案

GitHub的帮助页面herehere解释了如何使分叉的repo与源代码库保持同步。

以上是关于如何将一个git的master分支提交添加到另一个git中?的主要内容,如果未能解决你的问题,请参考以下文章

将提交从一个分支移动到另一个分支

如何将本地未提交的更改合并到另一个 Git 分支?

如何将多个提交合并到另一个分支上作为单个压缩提交?

git高级用法之cheery-pick

在 Git 中将选定提交从一个分支合并到另一个分支的更好方法

git将某分支的某次提交合并到另一分支