版本控制之git
Git分布式版本控制器

①-简介
之前大家学习的svn是一个集中式的版本控制器。
版本控制器:就是用来追溯自己书写的代码的记录信息。好处:可以非常方便的记录何时何地何人操作了哪些代码。
集中式:对于集中式的版本控制器,需要搭建一个中央服务器【管理代码】,然后在这个中央服务器里面作为代码的仓库。svn是属于一个c/s架构的平台。c:小乌龟。
分布式:每个用户都可以称为代码的仓库,各自都是独立。如果使用了git那么自己的电脑即是服务器端,又是客户端。会先把仓库保存在本地。
一般来说现在的公司大部分用的是svn。git只是少部分的非常前言的IT公司使用。但是很多公司配合svn一起使用。因为目前很多的开源产品都是托管在一个叫做github网站上面,如果要获取github上面的源码代码一般都需要学会git的使用。
- 什么是git?(俚语:傻子的意思)【git软件之父、Linux之父:李纳斯】
历史:91 ---> 93 商业版本控制器 --- 反编译【人:samba之父,可以在window(fat32 ntfs)和Linux(ext3 ext4)之间进行文件传输共享的软件、在不知道window内部传输协议的情况下,自己抓包分析得到协议进行开发的 。可以把远程的文件系统映射成本地电脑的磁盘。只支持内部局域网系统。互联网上的Linux、Unix之间的文件共享:NFS【文件共享服务器的时候】。ftp上传】 ----- 修改开源版本器【开发者】---- 接触 --- 法律 李纳斯 协调 --- 自己开发【二周开发、v1.0】---- 小伙伴 ---- git 分布式

samba开发者当时反编译bitKeeper,然后被状告。最后李纳斯本人用了二个星期左右的时间,开发git工具。Andrew Tridgwell
 
git概图学习:分布式的管理【开发者的电脑即是服务器又是客户端、本地电脑里面就存在仓库:1. 代码 2. 日志记录】
 
分布式:就是每个用户的电脑都是一个独立的仓库,可以记录代码的变化,即使不联网,完全也可以自己独立开发。
②-快速入门-安装
- git安装
 
全程【下一步】
安装后
 
点击后
 
在模拟环境里面可以无缝的使用Linux下的命令。【很好】
③-仓库建立
先建立本地的仓库。先不再服务器上建立仓库,因为说过git是属于分布式的管理系统。自己的电脑可以实现本地仓库。
建立仓库(git init)
1. 建立一个d:/day13的目录,作为仓库
 
2. 使用git init 创建仓库【git init】
 
3. 查看仓库的版本信息(git status)
 
4. 需要把自己的文件加入到git版本控制器里面
 
a.先把文件加入到暂存区,然后加入到仓库(git add)
 
b. 配置你是谁,怎么联系你(只需要执行一次即可,以后都不要在执行了)
 
执行
 
c. 提交到仓库
 
d. 查看仓库的的修改记
 
④-git远程仓库
需要注意:git远程仓库不是必须的,如果只是一个人作为自由工作者soho【德国全球IT做大的】这个时候完全可以建立本地仓库进行代码的管理、但是一般建立一个方便彼此之间沟通,如果是要做某个开源项目,这个时候git是最好的选择。github (环境) 500w活跃者。
不得不提的是github,github是一个web版本的版本仓库平台,主要是做开源项目的代码托管。【也可以建立私有项目、不开源、内部使用,需要花钱】,并且该平台还可以后使用git-pages搭建免费的个人博客【完全免费、提供了300M的静态空间】
红楼梦 3M左右
github是互联网上一个免费的git仓库,可以在上面搭建开源的项目,但是这个网站的服务器是在国外的,不是很稳定。【Google出去的时候,zf把这个github顺带的封了,李开复带头、技术人活路.... 开放部分,敏感事件....关闭....】
由于github处于国外,一般都使用国内的git仓库
命令:
配置必须的,但是只需要执行一次即可:
- git config --global user.name ‘caoyang’ 告诉git你是谁
- git config --global user.email ‘caoyang@163.com’ 告诉git怎么联系作者
基本命令:
- 创建仓库 git init
- 把文件加入到 git add .
- git commit -m “注释信息”
- git status 查看对应仓库的版本信息
- git log 查看当前仓库里面的文件的变化
⑤-码云的使用
码云远程服务器提供一个仓库的功能,我们可以在码云上搭建一个远程仓库,然后在本地电脑使用客户端进行管理操作。【代码的提交】
常见的开源协议:最原始GPL【GUN组织:gun is not unix stallman】源代码开放【版权还是自己的、完全开源】GPLv2.0【松散】LGPL协议【loose 很松散】MIT、BSD、APache...
开源不意味着免费、收费【服务费】redHat红帽【10w】上门服务
1. 建立一个开源的仓库
 
- 填写项目的信息
 
- 复制项目的地址
 
4.把开源的项目克隆到本地
 
5. 本地仓库代码同步到远程仓库(git push)
 
6. 简便方式提交,由于每次提交到要书写提交的地址,太麻烦,可以使用origin做简写代替
 
上面的操作每次都要输入密码,太麻烦了,可以使用简单的方式来完成。
⑥-码云的免密码提交
- 先在本地生成一个秘钥对
 
2. 生成的位置
 
3. 在网站上面配置公钥
 
把上面的id_rsa.pub里面的内容复制到下面。
 
4. 复制仓库的另外一个地址(例如:git@git.oschina.net:caoyang/git_php.git)
 
5. 删除git仓库的原始地址,修改为上面的地址
 
修改为新的地址
 
6. 以后修改后直接使用下面的方式提交(第一次需要输入yes)
 
⑦-git远程文件删除
rm = remove
1. git删除文件(git rm),提交到暂存区,提交到仓库
 
⑧-git版本查看-回滚
1. 可以使用git log --pretty=oneline查看git的版本修改信息
 
2.如果要回到任意版本,只需要使用 git reset --hard 复制上面的版本号的前6位
--hard[强制回滚]
 
3. 任意版本日志查看
 
⑨-脚本提交
由于每次都要进行add、commit、push操作,太过于繁琐,我们可以做一个脚本进行提交
- 在项目根目录创建脚本
 
内容:
 
2.设置可执行权限
 
3.提交测试
 
⑨-学习资料
《git权威指南》
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号