找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 89382|回复: 0

Linux之父带1.2亿程序员如何深度剖析Git底层原理文档

[复制链接]

该用户从未签到

发表于 2020-9-27 08:05:42 来自手机 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
相信每一个开发人员,从开始工作实习就和一个开源项目不离不弃,你的idea,你的文档,你的代码指南,几乎都会和它扯上相应的联系,相信有朋友已经猜到了,对,他就是Git,老牌程序员可能会用的是SVN,但是我想后面也已经转型而来,改为Git了吧
之前写过一篇文章,影响世界的开源项目,除了Linux之外,还有一个就是Git,有兴趣的大家可以看一下:让世界为之赞叹的开源项目,除了Linux,你知道Git吗?
那Git为什么这么牛逼,我们先简单的看一下Git的实现方式吧
“版本控制系统”Version Control System,VCS)是程序代码管理软件的通称,是用来保存程序文件的修改记录以及历史版本,以便日后查看或是使用。VCS已经有数十年的发展历史,最早期的系统是采用集中管理和控制的方式。如果要修改某一个程序文件,必须先将它锁定,然后取出修改。在完成修改和回传之前,其他人都不能更改这个程序文件。这种方式可以有效避免“冲突”(conflict)的发生(也就是防止不同人同时修改同一段程序代码所造成混淆的情况),但是付出的代价是效率降低。因为如果想要修改的文件正好有别人正在修改,就必须等程序文件回传之后才能动手。如果要修改的人很多,因为互相等待所造成的时间浪费将非常可观。为了解决这个问题,新的VCS 改成采用分布式的方法。每一个人随时都可以获取任何一个程序文件来进行修改,等到送回VCS 的时候,再根据需要进行“合并”(merge), Git就是采用这种分布式技术的系统。
那接下来就是进入整题,也就是Git在我们日常生活中的使用以及面试中常问的问题
开始前,先来看我整理的相应的思维导图吧

                               
登录/注册后可看大图

Git的开发者其实就是Linux的作者,也就是鼎鼎大名的 LinusTorvalds。—开始的时候,Torvalds是使用 BitKeeper 软件来管理Linux的程序代码,该软件原来是免费使用的,但是后来却要收费。于是Torvalds想要更换VCS,却苦于寻找不到其他的替代方案可以符合开发Linux的需求。因为参与开发 Linux 的人数高达上千人,而且分布在世界各地。最后Torvalds决定自己打造一个VCS。经过短短几个星期,第—版的 Git就正式诞生。Linux项目从此用Git管理,当时有将近七百万行的程序代码!
由于Git管理Linux项目非常成功,许多公司于是纷纷效仿,开始使用 Git来管理和控制软件研发项目。这些成功的经验,让 Git的影响力越来越高,使用率也快速提升。
所以开始第一篇,很简单,就是Git的操作指令,不错,如果你会Linux的话,很多东西对你来说比较简单的,好多命令可以通用

                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图

当可以正常使用软件之后,接下来就是对于程序提交的管理工作,毕竟项目开发过程中掺杂着多人之间的协作问题,就像Linux有近两万人提交升级修改,那Git是如何去解决这个问题呢?

                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图

就像Linux的每一个版本都会有DVD和mini两个版本一样,在习惯了使用mini的命令版本之后,DVD版本的Linux更容易上手
同样的,到当前为止,我们一直都是使用 Git Bash程序来学习Git的用法。Git Bash程序是以输入指令的方式操作 Git文档库。与图形操作界面的程序相比,这种命令行模式的程序好像比较麻烦。其实不然,Git Bash程序才是能够完整发挥Git最大功能的操作工具。初学者应该从 GitBash程序开始学习,才能打下扎实的 Git指令基础,并且完整了解 Git文档车的工作原理。等到熟练掌握这些基础知识之后,再来学习图形操作模式,自然就能触类旁通、轻而易举。经过前面单元的学习和演练,相信读者已经具备完整的基础。这个单元我们就来介绍 Git GUI这个图形界面操作程序的用法。

                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图

截至当前为止,我们操作的 Git文档库都是存储在程序项目的文件夹内(也就是“.git”的文件夹内)。随着程序项目的进展,我们会把不同阶段的文件内容加入Git文档库。这个Git文档库是由我们直接操控,称它为“本地 Git文档库(local repository)”。除了“本地 Git文档库”以外,如果需要和其他人共同开发这个程序项目,还需要一个所谓的“远程Git文档库(remote repository)”。这个单元我们就来介绍“远程 Git文档库”的功能和用法。

                               
登录/注册后可看大图

重点把这一块的内容拿出来,因为它这个Git远程文档库跟我把GitHub当成百度网盘使用有异曲同工之妙,但是我的方案还是有一点不足,在看完这份文档之后才想到改进方案

                               
登录/注册后可看大图


                               
登录/注册后可看大图

这个单元先介绍两种访问远程 Git文档库最简单的做法。这两种方法都不需要安装任何其他软件。
[indent,第一种是使用Windows操作系统本身的网络“共享文件夹”功能;
第二种是使用Git内建的 dacmon功能。
[/indent,

                               
登录/注册后可看大图


                               
登录/注册后可看大图

Git总共提供了超过一百个以上的指令让我们执行各种操作可以使用“git help -a”指令显示完整的指令列表),每一个指令又有许多选项可以搭配,但是我们不可能,也不需要完全记住这些指令。就实用性而言,只要熟练部分指令和选项的用法,就可以满足—般应用的需求。以下我们将常用的 Git指令,按照字母顺序列表说明,以方便读者查阅。

                               
登录/注册后可看大图


                               
登录/注册后可看大图
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-11-2 09:19

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表