请教:如果 forked github 上一个公开的项目,原项目删除了,那么 forked 的项目是不是也跟着一直删除? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
scylla
V2EX    GitHub

请教:如果 forked github 上一个公开的项目,原项目删除了,那么 forked 的项目是不是也跟着一直删除?

  •  
  •   scylla 2015-08-24 09:33:31 +08:00 14594 次点击
    这是一个创建于 3705 天前的主题,其中的信息可能已经有所发展或是发生改变。
    RT ,查看帮助后,答案是不会被删除的

    https://help.github.com/articles/what-happens-to-forks-when-a-repository-is-deleted-or-changes-visibility/

    那么问题来了,新的这个 parent, 如果当时 fork 的时候,是旧的版本,那原项目后面的提交是不是也没了?比如:

    原项目当前版本是 5 , fork 一个子项目 fork1 (是众多 fork 之一)。
    过一段时间后,原项目提交了很多个新的版本,但是 fork1 并未跟着一起更新,
    原项目到版本 30 后,作者把原项目删除了
    github 会不会选择 folk1 作为新的 parent? 如果是,那原项目在版本 5 后提交的那些修改是不是没了?
    10 条回复    2015-08-24 12:25:17 +08:00
    cxe2v
        1
    cxe2v  
       2015-08-24 09:34:56 +08:00
    我的理解是, fork 就是开了一个分支, master 的修改跟 fork 是没关系的
    gDD
        2
    gDD  
       2015-08-24 09:40:40 +08:00
    最后一个问题,会的,假如有一个项目 M ,它有 N 个 fork ,当 M 删除之后, GitHub 会在这 N 的 fork 中选择一个作为 parent 。

    实例:
    https://twitter.com/gaomd/status/635066231607848960

    https://twitter.com/gaomd/status/635063836534398976
    https://twitter.com/gaomd/status/635064702016450560
    https://twitter.com/gaomd/status/635067220033302528
    ChiangDi
        3
    ChiangDi  
       2015-08-24 09:40:45 +08:00 via Android
    你试试就知道了
    gDD
        4
    gDD  
       2015-08-24 09:45:03 +08:00
    「 github 会不会选择 folk1 作为新的 parent?」:会的
    「如果是,那原项目在版本 5 后提交的那些修改是不是没了?」:是的

    再回答前一个问题,删除 parent repo 会不会连带删除 fork :

    https://twitter.com/gaomd/status/635061933478146048

    > 在 GitHub 里:一个公开项目要转为私有,会丢失 stars 和 watches ,所有 forks 都会保留并与之脱离关系;一个公开项目要删除,所有 forks 也会被保留下来。

    https://twitter.com/gaomd/status/635068087423729664

    > 与之反观的是 Private Repository , fork 它以后也是 private 的,且不需要 subscription ,删除它会连带删除所有 forks 。
    adrianzhang
        5
    adrianzhang  
       2015-08-24 10:18:35 +08:00
    仓库和分支,不要弄混概念。 fork 是对源 repo 的 clone ,如果你 clone 了一个 repo ,那么你本地做的任何 commit 都影响不了 origin ,除非做 push pull 。
    与 clone 一个仓库不同的是:如果你 fork 别人的项目,不经过别人允许就 push ,那会让原项目管理起来很累,所以 GitHub 的设计为只允许发 pull request ,由源项目决定是否 pull 你的 commit 过来合并。
    至于源项目删除,看是删除 repo 还是只删除某个 commit version 或者只删除某个 branch ,只要不删除 repo ,那么你 fork 出来,对方做了修改后删除某个 commit 或 branch ,你 pull request 发出后,对方如果愿意 pull 你的 repo 相应的 branch ,那源项目不受影响。

    V2EX 里发现好多关于 Git 的问题,都是因为对 Git 工作机制不理解。请参考
    http://v2ex.com/t/214595#reply10
    Tink
        6
    Tink  
    PRO
       2015-08-24 10:26:33 +08:00   1
    fork.....复刻
    goodbest
        7
    goodbest  
       2015-08-24 10:35:21 +08:00
    @gDD
    @cxe2v
    @adrianzhang

    我知道有一个例外:如果源 repo 违反了 DCMA 等,那么可能 forked repo 也会同时被删。
    goodbest
        8
    goodbest  
       2015-08-24 10:36:14 +08:00
    @goodbest 当然这个删除是 github 来删的,不是原作者删的。
    buddha
        9
    buddha  
       2015-08-24 11:47:13 +08:00
    谁有 fork 过喝茶大神的最新版本 我想 fork 一个
    raincious
        10
    raincious  
       2015-08-24 12:25:17 +08:00
    @buddha 没啥可担心的。除了 Python 和 iOS 的客户端没有了,其他的依然在正常 commit 。

    而且就算 Python 和 iOS 的官方仓库没有了,还有很多 fork ,所有人都可以是主仓。

    退一步说,要是实在担心,还找个 fork 最高的 clone 下来保存到 Bitbucket 上。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2898 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 13:56 PVG 21:56 LAX 06:56 JFK 09:56
    Do have faith in what you're doing.
    /div>
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86