使用 git 修补分叉存储库
比如说,我有某个库版本的分支。 1.1 git下。然后是一个新的 tar-ball 版本。 1.2出来了。如何将我的分叉库更新到新版本?
Say, I have a fork of some library ver. 1.1 under git. Then a new tar-ball ver. 1.2 comes out. How can I update my forked library to a new version?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的问题不太好,但我会提供一个可能的解决方案。
让我们假设该库的代码库如下所示:
您在
b
上分叉,这是1.1
版本。现在假设开发在
vendor
树上继续进行。d
成为他们的1.2
版本。如果vendor
树位于 git 存储库中并且您可以访问它,则可以使用git pull
或来自vendor
树应该可以完成您需要的大部分操作,您可能需要解决一些冲突等。但是,如果vendor
树不在 git 中,并且您拥有源代码的唯一访问权限代码是每个版本的 tarball,那么可能需要稍微复杂的东西。因此,我将在您分叉的位置创建第二个分支,方法是:
然后将 v1.2 tarbar 解压到此分支并提交更改。您现在应该有这样的内容:
现在,您可以使用以下命令合并分支 v1.2 中的更改:
或者您可以使用以下命令在 v1.2 之上重新调整您的更改:
这将为您提供:
我不是专家,所以我如果我犯了一些错误,我确信人们会发表评论(请这样做,然后我会添加更正)。
You question isn't great, but I'll offer a potential solution.
Lets assume the code base for the library looks like this:
you fork at
b
which is the1.1
release.Now assuming development continues on the
vendor
tree.and
d
becomes their1.2
release. If thevendor
tree is in a git repo and you can access it, then agit pull
or maybe agit pull --rebase
from thevendor
tree should do most things you need, you may need to resolve some conflicts etc. However if thevendor
tree is not in git, and the only access you have the source code is tarballs of each release then something slightly more complicated might be required.So I would create a second branch at the point at which you forked, by doing:
Then untar you v1.2 tarbar into this branch and commit the changes. You should now have something like this:
Now, either you can merge the changes from branch v1.2 using:
Or you can rebase your changes on top of v1.2 using:
Which will give you:
I'm no expert, so I'm sure people will comment if I've made some mistakes (please do, then I'll add corrections).