补丁与git分叉回购

时间:2011-03-03 14:33:12

标签: git patch

说,我有一些库的ver。 1.1下git。然后一个新的tar-ball ver。 1.2出来了。如何将分叉库更新为新版本?

1 个答案:

答案 0 :(得分:4)

你的问题不是很好,但我会提供一个潜在的解决方案。

让我们假设库的代码库如下所示:

vendor  a -- b

你在b发布了1.1版本。

vendor  a -- b
              \
               \
you             1 -- 2 -- 3

现在假设vendor树继续开发。

vendor  a -- b -- c -- d
              \
               \
you (master)    1 -- 2 -- 3

d成为他们的1.2版本。如果vendor树位于git仓库并且您可以访问它,那么来自git pull树的git pull --rebasevendor应该可以执行您需要的大部分操作,可能需要解决一些冲突等。但是如果vendor树不在git中,并且您拥有源代码的唯一访问权限是每个版本的tarball,那么可能需要稍微复杂一些。

所以我会在你分叉的位置创建第二个分支:

$ git checkout -b v1.2 b

然后解压你v1.2 tarbar到这个分支并提交更改。你现在应该有这样的事情:

vendor  a -- b -- c -- d
             |\
             | \
you (master) |  1 -- 2 -- 3
              \
(v1.2 branch)  x

现在,您可以使用以下方法合并分支v1.2中的更改:

$ git checkout master
$ git merge v1.2

或者您可以使用以下方法在v1.2之上修改您的更改

$ git rebase v1.2

哪个会给你:

vendor  a -- b -- c -- d
              \
               \
you (master)    x -- d -- 1 -- 2 -- 3

我不是专家,所以我相信如果我犯了一些错误,人们会发表评论(请做,然后我会添加更正)。