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

时间:2018-07-25 18:27:52

标签: git github

我有一个git存储库,其主分支位于xxx commit。 这也包括一些分支。

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

但是不想影响我在现有资源上的现有分支。

所以,请让我知道,我如何才能将这些最新提交提交到现有的主服务器中。我还需要最新的master的所有提交。

2 个答案:

答案 0 :(得分:0)

这是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)

如果这不是您想要的,请在下面评论。

答案 1 :(得分:0)

GitHub的帮助页面herehere解释了如何使叉式存储库与源存储库保持同步。