相信每个开发人员,从开始工做实习就和一个开源项目不离不弃,你的idea,你的文档,你的代码指南,几乎都会和它扯上相应的联系,相信有朋友已经猜到了,对,他就是Git,老牌程序员可能会用的是SVN,可是我想后面也已经转型而来,改成Git了吧git
以前写过一篇文章,影响世界的开源项目,除了Linux以外,还有一个就是Git,有兴趣的你们能够看一下:让世界为之赞叹的开源项目,除了Linux,你知道Git吗?程序员
那Git为何这么牛逼,咱们先简单的看一下Git的实现方式吧面试
“版本控制系统”Version Control System,VCS)是程序代码管理软件的通称,是用来保存程序文件的修改记录以及历史版本,以便往后查看或是使用。VCS已经有数十年的发展历史,最先期的系统是采用集中管理和控制的方式。若是要修改某一个程序文件,必须先将它锁定,而后取出修改。在完成修改和回传以前,其余人都不能更改这个程序文件。这种方式能够有效避免“冲突”(conflict)的发生(也就是防止不一样人同时修改同一段程序代码所形成混淆的状况),可是付出的代价是效率下降。由于若是想要修改的文件正好有别人正在修改,就必须等程序文件回传以后才能动手。若是要修改的人不少,由于互相等待所形成的时间浪费将很是可观。为了解决这个问题,新的VCS 改为采用分布式的方法。每个人随时均可以获取任何一个程序文件来进行修改,等到送回VCS 的时候,再根据须要进行“合并”(merge), Git就是采用这种分布式技术的系统。网络
那接下来就是进入整题,也就是Git在咱们平常生活中的使用以及面试中常问的问题架构
我的仓库地址:https://gitee.com/biwangsheng/personal分布式
开始前,先来看我整理的相应的思惟导图吧ide
Git的开发者其实就是Linux的做者,也就是鼎鼎大名的 LinusTorvalds。—开始的时候,Torvalds是使用 BitKeeper 软件来管理Linux的程序代码,该软件原来是无偿使用的,可是后来却要收费。因而Torvalds想要更换VCS,却苦于寻找不到其余的替代方案能够符合开发Linux的需求。由于参与开发 Linux 的人数高达上千人,并且分布在世界各地。最后Torvalds决定本身打造一个VCS。通过短短几个星期,第—版的 Git就正式诞生。Linux项目今后用Git管理,当时有将近七百万行的程序代码!工具
因为Git管理Linux项目很是成功,许多公司因而纷纷效仿,开始使用 Git来管理和控制软件研发项目。这些成功的经验,让 Git的影响力愈来愈高,使用率也快速提高。学习
因此开始第一篇,很简单,就是Git的操做指令,不错,若是你会Linux的话,不少东西对你来讲比较简单的,好多命令能够通用idea
当能够正常使用软件以后,接下来就是对于程序提交的管理工做,毕竟项目开发过程当中掺杂着多人之间的协做问题,就像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文档库最简单的作法。这两种方法都不须要安装任何其余软件。
第一种是使用Windows操做系统自己的网络“共享文件夹”功能;
第二种是使用Git内建的 dacmon功能。
Git总共提供了超过一百个以上的指令让咱们执行各类操做可使用“git help -a”指令显示完整的指令列表),每个指令又有许多选项能够搭配,可是咱们不可能,也不须要彻底记住这些指令。就实用性而言,只要熟练部分指令和选项的用法,就能够知足—般应用的需求。如下咱们将经常使用的 Git指令,按照字母顺序列表说明,以方便读者查阅。
关注公众号:Java架构师联盟,每日更新技术好文