Git 菜鸟变大神 (一) 本地仓库的创建和初始化
Git是什么?
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
如果说为什么要选择Git,可以说因为Git高端大气上档次,实现了免费开源易用的版本控制功能,并有诸多优点。
为什么选择Git?
git起源
在1991年linus创建了Linux从此linux成为服务器领域的佼佼者,大部分web服务器、邮件、数据库各种服务器端程序都安装在了linux上面运行,主要是因为它运行的快速、高效、利用率高,这样一个优秀的系统并不是一个人在维护,来自民间的众多高手一起在维护这linux发展,那么这么多分布式世界各地的人如何共同维护如此多的Linux代码呢?
这就需要一个分布式代码管理工具,linus使用过BitKeeper来管理代码但是它是收费的,让很多人用着不爽,后来linus本人就自己开发写了一个工具来管理,这就是git的第一个版本。
后来随着时间推移越来越多的开源软件通过Git来管理,为了把世界各地的开源项目管理起来,GitHub网站随后上线了,很多流行的项目加入的此网站上面。例如我们经常使用的jquery等。
vs集中式版本系统
集中式版本控制系统像CVS、SVN等,一般是将代码部署到一台服务器上面,每个开发者在每天开发之前需要从服务器上面checkout下来最新的代码,本地修改完后要 commit,要求本地电脑与服务器连着才可以提交如果网络带宽慢则会很卡,记得曾经在公司提交代码,几十k的代码每次提交都会卡住,很影响开发速度和开发质量。
集中式图例如下
如果在公网上面开发和提交代码那么久会更慢了,设想如果你想在家里面开发项目,SVN服务器在公网上面先下载后更新会有多慢,如果家里没有联网就会更悲催了。
相比之下,git不需要连接网络就可以提交代码,本机具有完成的代码库,事实上每个开发者都具有一个完整的代码库,我们可以随心所有提交代码,每个人修改代码之后会将修改的代码互相推送给每个人,通常为了提高互相推送的传输效率往往搭建一台git服务器来进行代码的推送和拉回,可以提高开发效率。如下图
除了git,与git类似的分布式代码管理还有Mercurial、Bazaar等等。有特殊需求的可以找具有某种特性的管理软件。
安装Git
git安装在不同的系统上面安装方式不太一样,包括linux、mac 、window等,对于大多数开发者来说常用的还是window版安装,因此这里只说一下window安装方式。
在window上面执行linux程序需要先安装cygwin这个程序,它是用来window与linux shell交互的软件,实现了让window用户体验linux系统的各种命令,而不用安装几个G的linux系统。
安装Git-1.9.5-preview20150319.exe这个软件中集成了cygwin,它们会一起安装到系统中,安装过程很简单一直下一步,在快捷菜单出现Git,打开如下图 表示安装成功。
创建版本库
1. 在e盘下面建立文件夹git/demo1/,然后进入该目录输入命令:git init 既可完成初始化工作。如下图
版本库根目录下,会出现一个.git 文件,这个是版本库文件控制着这个目录(包括子目录)下面的文件更删改查改动。
2. 在目录下面新建一个 git.txt 文件夹,依次执行 git add git.txt ;git commit git.txt 既可将文件提交。
总结
公司一直在使用Git但一直也没有总结一下,感觉一直停留在会用的层次对自己还是对别人没有什么提高,有时候需要拿出来一些时间对所使用的、所涉及的、所感悟的用文字写下来。
在过了很多年之后回过头来看看自己经理过的东西,应该会有不一样的感觉,匆匆时光如果什么都不留下会感觉空旷,在写的过程中会思考一些小的细节,让整个过程更清晰。
由于工作或是其他原因,发现一边工作可以坚持写博客还是挺难的,不是没有时间也不是没有东西可写,只是不能够像在大学时有一颗平静的心,来写写东西。
如果说以前写博客的目的是学习和积累,以及让更多的人认识你,或是找一个不错的工作作为动力,那么现在也可以坚持写,首先是利于自己的不论是出于有用或没用的目的,对自己肯定是有用的。
写一写是将一些想法表达出来,甚至你可以写写对领导的不满、对工作的抱怨,以及如果你是老板你会怎么样做,你要怎么样做待会是一个优秀的员工等等,还可以是一个特别小的设计思路、一行代码、一个发生在公司的小事情都是你可以拿出来写写的。
暮然回首一下你曾经待过的公司,可能你已经忘记了你的队友叫啥、在你们开发项目中发生过什么事情,好的设计方案、实现方案,每个领导身上的优点,以及公司的运营流程等等,这些如果你平时不写写啥的,过半年你就会什么也想不起来了,人都是对最近发生的事情记忆尤新,网络记录是帮我们的最好帮手。