我有一个git存储库,其主分支位于xxx commit。 这也包括一些分支。
主分支源(带有xxx提交)是从2年前互联网上的一些git repo中提取的。但是现在,该开源软件包的代码已更新。 因此,我想使用最新的master分支代码。
但是不想影响我在现有资源上的现有分支。
所以,请让我知道,我如何才能将这些最新提交提交到现有的主服务器中。我还需要最新的master的所有提交。
答案 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)