Github 如何 fork 一个项目两次?

2014-10-17 14:02:35 +08:00
 lalalakakaka
github苦手一枚~无奈来提问了。
情况是这样的:
原始项目演进是:ver0 ver1 ver2 ver3 ver4 ver5 ver6
项目B是原始项目的一个fork。假设从 ver2 开始的。
而我从ver4开始fork了这个原始项目。
现在我想fork项目B,在gitub网页上操作的,结果总是会弹到我自己最早的fork版本上,也就是说项目B我始终不能fork。。为什么?如何解决?
9419 次点击
所在节点    问与答
9 条回复
veiz
2014-10-17 14:07:23 +08:00
目测有两个解决办法:
1,删除原始项目的那个fork,重新fork项目B
2,基于原始项目的fork,开始拉项目B的更新,直到你自己那个版本库跟项目B的版本库一致。(merge的工作量可大可小,你要是fork的linux kernel....)
clino
2014-10-17 14:13:39 +08:00
为什么要folk两个?1个完全够了

有新的需求创建新的分支来做不就行了
lalalakakaka
2014-10-17 14:15:37 +08:00
@veiz 刚才没说明白,两个项目我都要保留。
那么我能不能开一个分支,分支1对应一个项目(原始),分支2对应另一个(项目B)?
lalalakakaka
2014-10-17 14:20:20 +08:00
@clino 现在有点纠结~
因为我自己的做的是小改动,那两个项目分别对应windows版本和linux版本,绝对是大改~
如果是从我自己的项目分支出来的话:1.肯定合并出来的版本不能用;2.会让人家误以为我做的工作很多。
所以最理想的情况是,我fork这两个项目,然后将我的改动merge进去,这样逻辑上说得通,而且merge成功率会高一些。
AstroProfundis
2014-10-17 14:30:59 +08:00
用多个分支,然后设置多个 remote, 每个分支可以绑定到不同的 remote/branch
relaxyy
2014-10-17 15:18:02 +08:00
新建一个repo,然后在项目上设置个新的remote,push --force应该可以。

注意:没有测试过
Akagi201
2014-10-17 18:36:07 +08:00
建立一个org账号, 然后就可以fork到那里了.
lalalakakaka
2014-10-17 23:26:25 +08:00
@relaxyy 这个办法可行。
最后,我似乎找到办法。我应该先添加一个远程仓库,即将项目B添加进我的新建分支,然后rebase一下,这样就可以得到项目B的代码了,而且从历史纪录也能清晰的看到我的新建分支来自项目B,而不是我的老分支。
rrrrutdk
2014-10-20 10:20:42 +08:00
设置两个remote:

git remote add fork-a A_REPO_URL
git remote add fork-b B_REPO_URL

这样的话,你的本地就有三个remote

origin(如果默认的话)
fork-a
fork-b

想切哪切哪:

git checkout fork-a/master master-a
git checkout fork-b/master master-b

想提交到哪就到哪:

git push fork-a master-a:master
git push origin master

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/139549

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX