基础
先预览下图,看下图中的文字描述。
该图是安装好sourceTree后克隆公司项目的一个图示,克隆成功后界面如下,其中可以看到一些我们需要关注的信息。
Git是什么?
基本上我们的开发都是以团队合作的形式存在,那么项目的托管便成了一个至关重要的难题。
那么项目托管是怎么回事儿呢?
其实就是将项目资料(代码、说明文档等)存放到一个大家都可以访问到的服务器,然后各自的项目资料都从上面获取和维护。
那么Git怎么帮助我们实现的呢?先看个栗子---->我和媳妇儿分开逛商场
我(分支1)和媳妇儿(分支2)一起购物,她采购的用品会带回家(合并),让我也能够使用,同时我采购的用户也会带回家(合并)。
参照上面的栗子,我们将实际开发使用Git的场景进行类比---->家存放着各种购买来的用品(Git的远程仓库存放着猿们的源码),我是分支1(Git上某猿创建的分支feature-xxx1),媳妇儿是分支2(Git上某猿创建的分支featrue-xxx2),最后我们将采购的用品带回家(Git中分支合并,也就是将猿的源码合并到总的仓库中合成一个真正的可上线项目)。
至此,这就是一个最基本的结构了。之所以基本,是因为如果用品买重复(冲突)了怎么办?而且我也不能买一卷纸跑回家一趟,买一包盐也跑回家一趟吧!我希望回家一趟是买很多东西的(缓存)。
原理
声明:后文图片和内容借鉴自"灰太郎",源地址如下:
https://www.cnblogs.com/cb0327/p/5066685.html
如中引入了Git的四个概念:分别是,
工作区间: 在哪里工作哪里就是工作空间,类比IDEA的工作空间;
缓存区: 如名,同时为提交代码的便捷、解决冲突的提供了可能;
本地仓库: 远程源码拉取下来后所存放在该本地目录,不能联网时本地代码可先提交至该处;
远程仓库: 即保存我们源码的服务器。
接下来, 看图理解。
- 推送代码
提醒:高效学习必须是建立在已有认知上的。请继续购物模型的套用来理解。
我眼里的上图是这样的–>找一个购物车和方便袋(缓存)、找一个商场(本地仓库)、找一个货架(工作空间)、最后买东西带回家(远程仓库)。
对应操作是–>本地计算机创建一个testGit目录,初始化该目录为本地仓库,同时该仓库作为工作空间(我们在本地仓库中工作,创建一个README.md,哪里工作哪里就是工作空间),然后将README.md文件加入到缓存中,然后从缓存中写入到本地仓库,最后将本地仓库中的README.md推送到远程仓库。
- 远程仓库代码更新到本地
- 冲突的产生及解决
解决方式很多,例如修改到不冲突后提交、直接提交干掉别人的代码、打个电话让别人改。。。还是靠谱些,查找冲突原因解决后在提交吧!原理图如下: