话说程序员不懂得git的使用,那这个开发人员不是一个好程序员,今天公司培训git使用,才发现自己也不会用,为此本人省去了看电视剧以及陪孩子的时间,记录下自己的Git学习过程,尽量以问答的形式来表述,分享给的大家,希望能帮到大家。
相信大家再开发过程中都有拷贝过别人的代码,我也不例外那就是大名鼎鼎的Github。其实大家都是它是个代码管理平台和开源社区。
- 为什么要版本控制系统?
我们上学时候都是文件夹共享的形式,共享给大家,缺点我就不说了自己想吧。。后来有了集中式版本控制系统SVN,集中版本管理的服务器。分支管理,历史版本都存再服务器当中了,版本比较 。SVN有个缺点就是那一天服务器挂了那就完了。在一个就是效率性能低。这时候linux的内核开发者linus就觉得不好。创造了分布式的版本控制系统。git。
分布式控制系统VCS:服务器于客户端都有完整的版本库,脱离服务器端,客户端照样可以管理版本。
查看历史和版本比较等等多数操作,都不需要访问服务器,比集中式SVN更能提高版本管理效率。
大牛出马开发出来的产片就是不一般。
Git特点
1,最优的存储能力
2,非凡的性能
3,开源的
4,很容易做备份
5,支持离线操作
6,很容易定制工作流程。
我觉得特点1,2 完全是得益于大牛出马,毕竟Linues是内核专家和文件系统专家。
- 那么Github和git是什么关系呢?
嘻嘻,说来话长我也是网上查到的,git和GitHub的渊源很深,有点父子关系但是儿子比父亲更厉害,居然牛逼到提供了基于Web服务的形式产品出现了。呵呵这就是我想说的。当然还有另外一个就是我们公司正在使用的GitLab。
这里我先我得一点认识分享给大家,先知道GitHub,GitLab和Git的关系。为了能够更深入的理解我这里是先学习Git,我得环境是Windows,所以学习环境也只能是Windows了。
- 如何安装Git?
Git官网:http:://git-scm.com
Git官方文档地址:http:://git-scm.com/book/zh/v2
Windows平台Git下载地址:http:://git-scm.com/download/win
//注意Git的文档是支持中文的额!!!!!可以切换如下图
安装方法可以参照里面的介绍,这里我就不再啪啪啪的写了。小伙伴自己看吧。。
注意:下载二进制比较简单而且会自动判断你的系统下载对应的32位还是64位的二进制安装包。我这里下载的是2.21.
安装完成之后验证是否安装成功。
控制台输入:git --version
- 安装之后的最小配置问题?
在使用Git之前必须要做一个一个最小配置。也就是说要把把参与开发工作人员的your name 以及emal 进行一个设置,那么大家肯定会想别的版本控制系统都不需要配置要求,那么git需要这些信息呢?经过我查询百度啊,发现大部分都说是这样说的:每个的做的工作的变更那个时间点是谁做出来的变更,那么这个信息是跟着这个的变更信息捆绑在一起的,同时我们做代码评审(code Review)那每一次的变更带上了这个用户的Email地址,那么评审的人员在这个平台上面指出了你那个文件有问题,那么我们这个web管控的web系统它就自动的会把变更者的Emil取出来,就自动的发个邮件给这个变更的人。所以Git变更的信息就有了Your Name your Email是必须配置起来的。如果大家忘了配置的时候后期你在做变更提交的时候它应该有一长串的提示信息必须做相关的配置。
正常的配置:
$git config --global user.name 'your_name'
$git config --global user.email 'your_email@domain.com'
既然有--global 那么也有local(Git管理我们的文件系统,只管理某一个仓库git所配置的信息只会针对当前的仓库有效)--global(比如系统有10个仓库,就是针对所有仓库,就不用一个一个配置了) --system(这个基本不用,它是对所有登陆的用户有效)。
- 如何查看现有的配置是什么样呢?就是现有的config的配置是什么样的?
这时候我们加个参数--list 就可以了。
git config --list --local
你可以看出local 提示必须在一个仓库里面才可以起作用,我们当前路径普通路径git根本没有管理这一块。
那么我们设置成local会怎么样呢?
所以local所以后面我们会建立一个仓库,这个疑问我们留着继续学习Git config的命令参数选项。
参数--list后面不加范围限制的话会把所有的配置都显示出来
到这里我学习了最小配置,也练习了如何配置,那么这样以后我们提交的时候就不会提示一长串的信息了。。
以免以后我们我们生成commit 提交时候email是无效的,比较麻烦这样我们学习的道路会更顺畅一点。
接着我们解决上面的问题,--local 它提示必须的有仓库,那么我们如何创建一个本地仓库。
- 建git仓库
建立Git仓库有两种情况:建立仓库之前,已经有了代码,还有一种就是还没有代码也想把建立的项目纳入到GIt管理中。
1,把已有的项目直接用Git管理。//只需要进入已有的代码文件夹就行了。
$ cd 项目代码所在文件夹
$git intit
2,新建的项目直接用Git管理 //没有项目代码
$ cd 某个文件夹
$git init your_project #会在当前路径下创建和项目名称同名的文件夹,这个文件夹有个裸仓库.git
$ cd your_project
我们就在当前默认的路径文件夹下执行
$ git init git_learning 命令,就会发现一个文件夹且里面里面有个.git裸仓库的隐藏的文件夹
注意:这个.git文件夹是Git的核心。那么这个.git里面到底有什么东西??我们带着个疑问继续学习。我们先解决我们输入:
git config --local user.name 'zhuweiwei'
git config --local user.email '2892710568@qq.com'