Git clone之后你的硬盘上究竟发生了什么?

Git 原理

在这里插入图片描述

git clone之后究竟发生了什么?

  • remote repository:这个不用过多解释,虽然git是分布式的代码管理工具,但大部分公司,组织都会建立一个集中的代码仓库服务器。(这里想到区块链到底后面会发展成半集中式还是完全分布式的呢?)该代码仓库存储着所有开发人员push上去的代码和branchs
  • 开发者键入git clone后,git会将远端所有的代码和branchs下载到开发者本地。
    • 有人会问,可是我git branch只看到一个branch(默认情况应该是master branch。不过仓库服务端可以进行配置其他任意branch为默认主分支)。git branch的确只能看到一个branch(在本地没有进行checkout -b参操作的情况下),因为其他branch需要用git banch -r(Git branch -a)才能看到。
    • 这时有人又会问,git branch -r看到的不是远端的分支吗?好吧,其实本文的唯一有价值的地方就在这里了。git branch -r看到的不是远端服务的branchs,而是你的本地的远端 branchs,git clone后在remote/origin repository区保存一份和此时远端分支一模一样的代码和branchs,而且该区域是不能修改的。
    • 如果想修改怎么办,git checkout -b master origin/master相信大家都用过类似的命令,这个是从远端拉出一个branch吗?不是,这是从你的本地的远端区域里的master branch拉出一个branch。而新拉出的branch就是存储在你的local repository区域里,这个区域是可以修改的,也就是git branch看到的那些branchs。

理解了以上两个区域后面有些命令的原理就十分清楚了

  • git pull做了什么?
    • 大家都知道git pull = git fetch + git merge两个操作。
  • git fetch做了什么?
    • git fetch其实是更新下你的本地的远端代码区域(remote/origin repository)的数据同服务端的代码保持一致。
  • 基于以上的说明,git pull的最后一步,就是把remote/origin repository区域中的相应的branch(已更新到服务端最新代码) merge到本地区域(local repository)的branch上。

以上是自己对git对代码管理上的一些理解,不保证正确性,因为我没有看过一行git源码,以上的分析只是从各种文章,流程图,以及实际使用中推理得出的。只是感觉它应该就是这一个样子的。希望没有误导别人

转自 https://blog.csdn.net/voidreturn/article/details/78695615 侵删

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值