面试官:说说Git中 fork, clone,branch这三个概念,有什么区别?
一、是什么
fork
fork
,英语翻译过来就是叉子,动词形式则是分叉,如下图,从左到右,一条直线变成多条直线
转到git
仓库中,fork
则可以代表分叉、克隆 出一个(仓库的)新拷贝
包含了原来的仓库(即upstream repository,上游仓库)所有内容,如分支、Tag、提交
如果想将你的修改合并到原项目中时,可以通过的 Pull Request 把你的提交贡献回 原仓库
clone
clone
,译为克隆,它的作用是将文件从远程代码仓下载到本地,从而形成一个本地代码仓
执行clone
命令后,会在当前目录下创建一个名为xxx
的目录,并在这个目录下初始化一个 .git
文件夹,然后从中读取最新版本的文件的拷贝
默认配置下远程 Git
仓库中的每一个文件的每一个版本都将被拉取下来
branch
branch
,译为分支,其作用简单而言就是开启另一个分支, 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线
Git
处理分支的方式十分轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷
在我们开发中,默认只有一条master
分支,如下图所示:
通过git branch
可以创建一个分支,但并不会自动切换到新分支中去
通过git checkout
可以切换到另一个testing
分支
二、如何使用
fork
当你在github
发现感兴趣开源项目的时候,可以通过点击github
仓库中右上角fork
标识的按钮,如下图:
点击这个操作后会将这个仓库的文件、提交历史、issues和其余东西的仓库复制到自己的github
仓库中,而你本地仓库是不会存在任何更改
然后你就可以通过git clone
对你这个复制的远程仓库进行克隆
后续更改任何东西都可以在本地完成,如git add
、git commit
一系列的操作,然后通过push
命令推到自己的远程仓库
如果希望对方接受你的修改,可以通过发送pull requests
给对方,如果对方接受。则会将你的修改内容更新到仓库中
整体流程如下图:
clone
在github
中,开源项目右侧存在code
按钮,点击后则会显示开源项目url
信息,如下图所示:
通过git clone xxx
则能完成远程项目的下载
branch
可通过git branch
进行查看当前的分支状态,
如果给了--list
,或者没有非选项参数,现有的分支将被列出;当前的分支将以绿色突出显示,并标有星号
以及通过git branch
创建一个新的分支出来
三、区别
其三者区别如下:
fork 只能对代码仓进行操作,且 fork 不属于 git 的命令,通常用于代码仓托管平台的一种“操作”
clone 是 git 的一种命令,它的作用是将文件从远程代码仓下载到本地,从而形成一个本地代码仓
branch 特征与 fork 很类似,fork 得到的是一个新的、自己的代码仓,而 branch 得到的是一个代码仓的一个新分支
参考文献
https://git-scm.com/book/zh/v2/Git-基础-获取-Git-仓库
https://git-scm.com/book/zh/v2/Git-分支-分支简介
--The End--
系列正在更新:3/10
点击下方卡片解锁更多
创作不易,星标、点赞、在看 三连支持
面试官:说说Git中 fork, clone,branch这三个概念,有什么区别?相关推荐
- 【Redis系列】面试官:Redis中的数据已经过期,为什么还占用这内存?
如果有面试官问Redis中的数据已经过期为什么还占用这内存? 它是因为Redis本身的过期策略和缓存淘汰机制所导致的. 说说Redis的过期策略和缓存淘汰机制 先来说说Redis的过期策略,Redis ...
- 面试官:Vue中组件和插件有什么区别?
一.组件是什么 回顾一下对组件的定义: 组件就是把图形.非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,在Vue中每一个.vue文件都可以视为一个组件 组件的优势 降低整个系统的耦合度 ...
- 面试官:Redis中集合数据类型的内部实现方式是什么?
虽然已经是阳春三月,但骑着共享单车骑了这么远,还有有点冷的.我搓了搓的被冻的麻木的手,对着前台的小姐姐说:"您好,我是来面试的."小姐姐问:"您好,您叫什么名字?&quo ...
- Spring AOP中Pointcut,dvice 和 Advisor三个概念
Spring AOP中Pointcut,dvice 和 Advisor三个概念介绍 在理解了Spring的AOP后,需要重点理解的三个概念是:Pointcut Advice Advisor ...
- 【性能优化】面试官:Java中的对象和数组都是在堆上分配的吗?
写在前面 从开始学习Java的时候,我们就接触了这样一种观点:Java中的对象是在堆上创建的,对象的引用是放在栈里的,那这个观点就真的是正确的吗?如果是正确的,那么,面试官为啥会问:"Jav ...
- 面试官:说说Innodb中LRU怎么做的?
引言 某日,小编去面试(纯属瞎编),有了如下对话 面试官:"懂mysql吧,知道CPU在读硬盘上数据的时候,是怎么解决CPU和硬盘速度不一致问题么?"我:"懂啊,mysq ...
- 面试官:InnoDB中一棵B+树可以存放多少行数据?
点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 来源:r6a.cn/fUA9 InnoDB一棵B+树可以存放多少行数据?这 ...
- 【245期】面试官:同类中两个方法加同步锁,多个线程支持同时访问这两个方法吗?...
点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每天 08:15 更新文章,每天进步一点点... ...
- 面试官:工作中遇到难题怎么解决的?看似送分题实则”送命”
"金九银十"跳槽季,不少职场的新人,在面对这个问题是无从下手,甚至很多职场老人也会措手不及,尴尬的说:"工作中没有什么难题吧,基本上都可以解决."如果我们这样回 ...
最新文章
- 下的生产环境was重新启动不同意,怎么做?
- 【极品手机推荐】安卓3G运存16G内存,相机1300+500,三星高画质显示J7109|J7108
- map/set/multi_map/multi_set/unorder_map/unorder_set总结
- P1972 [SDOI2009]HH的项链
- 全排列算法解析(视频+详解+代码+STL)
- 现代起亚混合动力SUV全球销量突破50万辆
- 《哪吒之魔童降世》观影人次突破1亿大关 为动画电影之最!
- 信息泄露案件_圆通回应运单信息泄露案件:系主动报案,涉4万余条敏感信息...
- 笔记本电脑键盘切换_2019年最好的2500元以内的笔记本电脑
- c语言字符输出128,如何将128位整数转换为C中的十进制ASCII字符串?
- 详解循环神经网络RNN(实践篇)
- Windows系统镜像下载
- c语言窗口炸弹代码,C语言实现宾果消消乐.pdf
- 人人影视路由二代刷Breed
- WebGIS 瓦片地图引擎实现之——地图瓦片计算
- 社交媒体运营_在社交媒体上确定投诉相关帖子
- pytorch实现LeNet5手写数字识别+各层特征图可视化
- 2020 gnome 桌面插件推荐
- 计算机专业网名英语翻译,100个高端大气英文网名(带翻译)
- 数学三次危机(三)“希帕索斯悖论”或“毕达哥拉斯悖论”
热门文章
- 代码随想录算法训练营第二天|LeetCode977.有序数组的平方、LeetCode209.长度最小的子数组、LeetCode59.螺旋矩阵II。
- CCRC信息安全服务资质认证给企业带来的好处
- 计算机组成原理形成性考核作业,电大本科计算机组成原理形成性考核册答案
- QT+OpenGL高级光照 Blinn-Phong和Gamma校正
- 湖南科技大学计算机学院新闻网,湖南科技大学计算机科学与工程学院
- Visio中导出无白边的矢量图(.svg格式)
- 南昌大学计算机技术专业课,20一战南昌大学计算机技术经验分享
- STC12c-UART1 串口 通信设置
- Blink编译及使用
- 2021-2027全球与中国反射式空间光调制器市场现状及未来发展趋势