官方解析
实际上,Git 本身并没有一个名为 fork 的命令。Fork 是一种在代码托管平台(如GitHub、GitLab等)上进行协作开发的概念。
Fork 操作的本质是复制一个仓库到自己的账户下,这样你就能在自己的仓库中进行修改,而不影响原始仓库。当你对自己仓库中的代码进行了修改,并希望将这些修改合并到原始仓库时,可以发起一个Pull Request。仓库的所有者可以审核你的修改,并选择是否将其合并到原始仓库中。
git clone命令是一个Git命令,用于将远程仓库克隆到本地计算机上。当你克隆一个仓库时,Git会将远程仓库的所有提交历史、分支和标签下载到本地。这样你就可以在本地进行开发、修改和提交操作。
Fork和Clone的区别如下:
- 操作层面:Fork是在代码托管平台上进行的操作,它会在你的账户下创建一个新的仓库,与原始仓库相互独立。而Clone是在本地计算机上进行的操作,用于将远程仓库的内容复制到本地。
- 目的:Fork主要用于协作开发,它让你可以在自己的仓库中进行修改,然后通过Pull Request将修改提交给原始仓库。而Clone用于将远程仓库的内容下载到本地,以便你可以在本地进行开发和修改。
- 权限:Fork操作不需要原始仓库的写权限,只需要读权限。而Clone操作通常需要在本地提交修改后,将修改推送到远程仓库。这可能需要原始仓库的写权限(除非你在自己Fork的仓库中进行开发)。
总之,Fork和Clone是两个不同层面的操作,它们在协作开发和版本管理中扮演不同的角色。在实际应用中,你可能需要同时使用Fork和Clone来进行协作开发。例如,在GitHub上,你可以先Fork一个仓库到自己的账户下,然后使用git clone命令将Fork的仓库克隆到本地进行开发。
fork
fork,英语翻译过来就是叉子,动词形式则是分叉,如下图,从左到右,一条直线变成多条直线
转到 git 仓库中,fork 则可以代表分叉、克隆 出一个(仓库的)新拷贝
包含了原来的仓库(即 upstream repository,上游仓库)所有内容,如分支、Tag、提交
如果想将你的修改合并到原项目中时,可以通过的 Pull Request 把你的提交贡献回 原仓库
clone
clone,译为克隆,它的作用是将文件从远程代码仓下载到本地,从而形成一个本地代码仓
执行clone命令后,会在当前目录下创建一个名为xxx的目录,并在这个目录下初始化一个 .git 文件夹,然后从中读取最新版本的文件的拷贝
默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来
当你在github发现感兴趣开源项目的时候,可以通过点击github仓库中右上角fork标识的按钮,点击这个操作后会将这个仓库的文件、提交历史、issues和其余东西的仓库复制到自己的github仓库中,而你本地仓库是不会存在任何更改
然后你就可以通过git clone对你这个复制的远程仓库进行克隆
后续更改任何东西都可以在本地完成,如git add、git commit一系列的操作,然后通过push命令推到自己的远程仓库
如果希望对方接受你的修改,可以通过发送pull requests给对方,如果对方接受。则会将你的修改内容更新到仓库中
- fork 只能对代码仓进行操作,且 fork 不属于 git 的命令,通常用于代码仓托管平台的一种“操作”
- clone 是 git 的一种命令,它的作用是将文件从远程代码仓下载到本地,从而形成一个本地代码仓
- branch 特征与 fork 很类似,fork 得到的是一个新的、自己的代码仓,而 branch 得到的是一个代码仓的一个新分支
Fork是GitHub操作,用于在远程仓库中创建一个副本,以便其他人可以基于该副本进行修改和贡献。通常,我们使用fork命令在GitHub或其他Git托管服务上创建一个公共仓库的个人分支,以便我们可以在其中进行自己的修改和实验,而不影响公共仓库的稳定性和安全性。
与fork命令相比,clone命令则是将远程仓库中的代码复制到本地机器上,以便我们可以在本地对代码进行修改和测试,而不需要连接到远程仓库。clone命令将整个仓库的历史记录、分支和标签都复制到本地,使得我们可以在本地完全重现远程仓库的状态。
因此,fork和clone命令之间的最大区别在于它们的操作目标。fork命令用于在远程仓库中创建个人分支,以便多人协作开发,而clone命令则用于将远程仓库复制到本地,以便在本地进行修改和测试。
版权归原作者 派大滨 所有, 如有侵权,请联系我们删除。