Git教程(一)
本帖最后由 NullPointer 于 2016-12-13 17:18 编辑一、Git是什么?答:Git是一款免费、开源的分布式版本控制系统。
二、什么是版本控制系统?
答:比如你是小说家,你已经写了10万字了,突然你想删除某段,但你又怕后期在还原,你的做法一定是先复制一下现在的word,备份一个,在进行删除。如有十次这样的操作你就需要备份十个文件,到时候真的想还原也是困难。再比如:你的小说是协作的,三个人一起写,每人写不同的章节,你们三个需要写一部分就到一起合并到最终版word上,想改动的话甚是困难。而Git这款软件恰恰解决了你的问题,他会记录你每一次修改的东西,如下格式:
版本用户 说明 日期
1张三 删除了软件服务条款5 7/12 10:38
2张三 增加了License人数限制 7/12 18:093李四财务部门调整了合同金额
你可以还原到任意一版本。
三、分布式(Git)VS集中式(SVN等)
先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。
那分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。
在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
ps:Git优点远不止这些。
四、如何安装Git?
ps:只介绍windows如何安装。(实话实说windows是最烂的,Linux最佳)
windows其实是不允许用Git的,不过有高人已经封装好了,下载即可。
https://git-for-windows.github.io/
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
还需最后一步设置,在命令行输入如下:
git config --global user.name "YourName"
git config --global user.email "YourEmail"
大功告成!
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。
注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
git,程序员必备 有点廖老师的语气{:1_900:} bubble21 发表于 2016-12-13 18:23
有点廖老师的语气
和廖老师学习的:lol 正需要这个教程,前两天拉取直接把本地的给覆盖了... kira_ 发表于 2016-12-13 18:41
正需要这个教程,前两天拉取直接把本地的给覆盖了...
后期抽空会写一篇,逐步学习的过程。 NullPointer 发表于 2016-12-13 18:44
后期抽空会写一篇,逐步学习的过程。
好的,多谢楼主了 此贴可以终结啦
1、VS2015支持Git扩展
2、Eclipse各种插件花式支持
3、以上等等都是封装好了的直接使用,命令什么的效率相对较低,同时容易出错 {:301_978:}目前在学python先收藏下来。 liuyuntianxia12 发表于 2016-12-14 11:21
此贴可以终结啦
1、VS2015支持Git扩展
2、Eclipse各种插件花式支持
你这个说法好有趣,会用工具就不需要知道底层到底运行了哪些命令,是怎么工作的吗?此教程首先讲解工作过程和命令,再次讲解工具的应用
页:
[1]