面试官:说说Git中的Fork、Clone、Branch这三个概念。有什么不同?转载本文请联系JS每日一问公众号。1.什么是分叉?Fork翻译成英文是叉子,动词形式是叉子。如下图,从左到右,一条直线变成多条直线,转入git仓库。fork可以代表一个fork,克隆一个(仓库的)新副本,包含原仓库(即upstreamrepository,上游仓库)的所有内容,如分支、标签、提交等。如果你想将你的修改合并到原项目中,可以通过PullRequestContribute将你的提交传回原仓库cloneclone,翻译为clone,其作用是将远程代码仓库的文件下载到本地,从而形成本地代码仓库。执行clone命令后,会在当前目录下创建一个名为xxx的目录,并在该目录下初始化一个.git文件夹,然后从中读取最新版本文件的副本。默认情况下,远程Git仓库中的每个文件的每个版本都会被拉下来。换句话说,就是再开一家分店。使用分支意味着你可以将你的工作与主开发线分开,以免影响主开发线。Git处理分支的方式非常轻量级,创建新分支的操作??几乎可以瞬间完成,不同分支之间的切换同样方便。在我们的开发中,默认只有一个master分支,如下图:可以通过gitbranch创建一个分支,但是不会自动切换到新的分支,通过gitcheckout可以切换到另一个testing分支2.如何使用fork在github上找到自己感兴趣的开源项目后,可以点击github仓库右上角fork标记的按钮,如下图:点击此操作后,仓库的Files、commithistory、issues等仓库复制到你自己的github仓库,你的本地仓库不会有任何变化。然后就可以通过gitclone克隆你复制的远程仓库了。后续修改任何东西都可以在本地完成,比如gitadd和gitcommit等一系列操作,然后通过push命令推送到你的远程仓库。如果你想让对方接受你的修改,如果对方接受了,你可以发送pullrequests给对方。它会将你修改的内容更新到仓库中。整体流程如下:clone在github中,开源项目右侧有代码按钮。点击后会显示开源项目的url信息,如下图:通过gitclonexxx可以完成远程项目分支的下载后,可以通过gitbranch查看当前分支状态。如果给出--list,或者没有非选项参数,将列出现有分支;当前分支会以绿色高亮显示,并标有星号,通过gitbranch3创建新分支。三者的区别如下:fork只能对代码仓库进行操作,fork不是git命令,通常在代码仓库托管平台上用作“操作”克隆是git的命令。它的作用是将远程代码仓库中的文件下载到本地,从而形成一个本地代码仓库。分支功能与fork非常相似。Fork得到一个新的,自己的代码仓库而branch得到的是一个代码仓库的新分支引用https://git-scm.com/book/zh/v2/Git-Basic-Get-Git-warehousehttps://git-scm.com/book/en/v2/Git-branches-分支简介
