新人求教,GitHub上fork和clone的区别是啥?

新手上路,请多包涵

新人求教,GitHub上fork和clone的区别是啥?

阅读 6k
10 个回答

基本概念

  • fork是在github上对于别人的仓库创建了一个仓库副本到自己的github云仓库中,发生在github上
  • clone是将github上的项目(可以是自己的项目,可以是别人的项目,可以是自己fork别人的项目副本)在自己本地目录下创建一个本地仓库,发生于github->本地

使用场景

对于其他人的项目进行优化改进,参与开源项目

  1. 在github上fork一个仓库副本到自己的github仓库列表
  2. 在自己的github仓库中clone生成本地仓库到本地目录
  3. 对于本地仓库中的代码进行编辑
  4. 本地发起commit,再push到自己的github云端仓库
  5. 在github平台上对fork的原项目发起PR(Pull Request),原作者审核通过后,自己的代码即可合并到原项目

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

简单来讲, fork是线上服务器的一份拷贝, clone是拷贝到本地了. 在代码合作的时候, fork部分进行修改了, 可以通过pull request提交请求, 进行合并操作. clone到本地的代码, 没有这个机制.

具体的可以查看这个回答: are-git-forks-actually-git-clones

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

从翻译来看,Clone 一般都译为“克隆”,但Fork却有几种译法。把Fork翻译成“分支”或“分叉”较为多见。不过把Fork翻译成“复刻”感觉更合适。一是其发音接近,二是“复刻”表达了其copy的基本功能。而“分支”或“分叉”似乎只表达了其可以产生分支(branch)的部分功能。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

新手上路,请多包涵

fork相当于将别人的项目放到自己的私人仓库,你可以通过git管理这个项目,如果你觉得你的修改有必要的话可以提交申请提交你的代码给开源项目作者,如果作者同意你的提交,你可以参与这个项目的开发,clone可以将本地库或者开源库中的代码复制到本地,在本地环境开发,深入了解这个项目

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

一图胜千言
image.png
image.png
image.png
image.png
fork 只能对代码仓进行操作,且 fork 不属于 git 的命令,通常用于代码仓托管平台的一种“操作”
clone 是 git 的一种命令,它的作用是将文件从远程代码仓下载到本地,从而形成一个本地代码仓
branch 特征与 fork 很类似,fork 得到的是一个新的、自己的代码仓,而 branch 得到的是一个代码仓的一个新分支
已参与 「极客观点」 ,欢迎正在阅读的你也加入。

fork是复制别人的仓库副本到你的仓库,用来修改提交pr的, clone相当于下载到你本地。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

新手上路,请多包涵

fork 相当于在线深拷贝了一份代码到你的仓库
clone 就是下载了一份代码到你的硬盘
fork可以pull request到源仓库,源仓库作者可以决定是否合并这个request

以上

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

fork 就是把别人的代码复制了一份到你的远程github仓库上
clone 就是把别人的代码下载了一份到你自己的电脑上

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

新手上路,请多包涵

概念上的不同。本人听说过拷贝有 浅拷贝和深拷贝之分(python),但么有听说分叉有深浅之区别。By the way, 本人也是来学习的,望大咖们勿见笑,我洗耳恭听就是了。

已参与 「极客观点」 ,欢迎正在阅读的你也加入。

fork:是把别人的代码复制一份放你自己仓库里面,别人的代码要是删了,对fork进你仓库里的代码没有任何影响。
clone:是把别人的代码下载一份放你自己本地电脑上,别人的代码要是删了,对clone到本地电脑上的代码没有任何影响。


已参与 「极客观点」 ,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进