GIT版本控制系统
版本控制系统功能:
1.记录版本历史信息(记录每一次修改的记录)
2.方便团队之间相互协作开发
3.远程开发......
常用的版本控制系统
cvs/svn :集中式分布系统
git:分布式版本控制系统
1.GIT工作原理以及基本操作
- 工作区:我们能看到的,并且用来写代码的区域
- 暂存区:临时存储用的
- 历史区:生成历史版本
工作区->暂存区->历史区
1.git的全局配置
第一次安装完成git后,我们在全局环境下配置信息:我是谁?
1.$ git config -l 查看配置信息
2.$ git config --global -l 查看全局配置信息
3.使用命令2查看有没有USER NAME ;USER EMAIL;
4.配置全局信息:用户名和邮箱
5.$ git config --global user.name 'theyhq'
6.$ git config --global user.email '1076883793@qq.com'
完成配置
配置完成后可再用命令2查看是否已含有USER NAME;USER EMAIL
2.创建仓库完成版本控制
创建本地git仓库
1.$git init
2.//->执行后会生成一个隐藏文件夹“.git”(这个文件夹千万不要删,因为暂存区和历史区还有其他的一些信息都在这里,删了就不是一个完整git仓库了。)
成功后会生成Initialize empty Git respository 生成了一个空仓库。
在本地编写完成代码后(在工作区),把一些文件提交到暂存区。
以下是将文件提交到暂存区的方法
1.$ git add 'xxx.xx' //该命令只提交某个文件,注意此处要该文件全称,即包含拓展名
2.$ git add .
或
3.$ git add -A //2或3将当前所有未存入暂存区的文件存入暂存区
4.$ git status //查看当前文件的状态:红色表明有文件在工作区未存入暂存区,绿色表明有文件在暂存区未 存入历史区,看不见则表示所有修改信息已经存入历史区。
接着是将暂存区文件提交到历史区
1.$ git commit -m'描述信息:本次提交内容的一个描述' //比如$ git commit -m'第一次提交的版本'
提交完成后可以用以下命令查看历史版本信息(历史记录)
1.$ git log //查看历史记录
2.$ git reflog //查看所有历史记录(包括历史区回滚后)
注意,不论是将工作区文件提交到暂存区,还是暂存区文件提交到历史区,提交的文件都会在原区域保留一份一样的,git通过比对两个区域文件的不同才知道文件有什么改变。
总结:平时写代码时写完一部分就应该提交到暂存区,写完一整套功能后提交到历史区生成一个新版本。
2.回退到旧版本的方法
之前我们说了用
1.$ git log
或
2.$ git reflog //可以查看历史版本,其中commit:后面那串长的就叫做版本号
接着我们执行:
1.$ git reset --hard 版本号 //实际此处用版本号的前7位或者完整版本号都可以
即可回退到该版本号对应的版本。
若成功会返回HEAD is now+返回版本号的一部分。
GIT和GIT-HUB
GIT-HUB:https://www.github.com
一个网站(一个开源的源代码管理平台),用户注册后,可以在自己的仓库下创建仓库,用来管理项目的源代码(源代码是基于git传到仓库中的)
我们熟知的插件,类库,框架等都在这个平台上有托管,我们可以下载观看和研究源码等
1.Settings用户设置
在头像下拉处选择到Settings用户设置
1.Profile
里面记载了别人可以看到的你的种种信息
2.Account
可以修改自己的用户名,但该域名和许多其他设置将会丢失
3.Secuirity
可以修改自己的密码
4.Emails
可以增加或者删除邮箱等等,若未验证会有提示
5.其他功能等等...
2.创建仓库
在头像下拉处选择Your repositorise,进入后用绿色的NEW或头像旁边的+下拉 NEW repository都可。
//点击后有个Import a repository的蓝色超链接,功能是导入一个仓库。
new repositorise->填写信息->Create repository
- public 公共仓库作为开源项目
- private 私有仓库作为内部团队协作管理的项目
Settings->删除仓库Delete this repository
->Collabrators 设置协作开发的成员 再Add collaborator即可添加团队协作成员。成员通过邮箱同意即 可。
进入某个仓库后
Code 可以查看历史版本信息和分支信息,即版本号和原文件等,能快速回退到此处。
3.把本地仓库信息提交到远程仓库
1.建立本地仓库和远程仓库的连接
1.$ git remote -v //查看本地仓库和哪些远程仓库保持连接
2.$ git remote add origin GIT仓库地址 //让本地仓库和远程仓库新建一个连接 其中origin是一个随 便起的连接名,可以改成自己想要的,不过一般都是这个名字
3.$ git remote rm origin //移除连接
其中仓库地址为:
特别注意!!!远端和本地的文件的传入传出等是依靠于本地的历史区!!!
所以在提交到远程仓库之前一定要按照之前的步骤将变化的文件同步到暂存区和历史区再提交!!!!!
此处省略了将文件同步到暂存区和历史区的步骤!!
每次提交到远程仓库之前最好先拉取
1.$ git pull origin master //从远程仓库中拉取
因为如果有别人上传了文件到这个git仓库中,我们没有pull而直接push的话会出现错误。
之后提交到远程仓库(需要输入github的用户名和密码)
1.$ git push origin master //在弹出框输入GitHub的账号密码即可
特别地,可能会有特殊情况发生:
1.要求输入SSH 账号密码,这个额外的按照github的账号密码输入一次就可以了
2.直接在git窗口内要求输入账号密码,账号正常输入即可,但密码输入时屏幕上不会显示字符录入,因为是使用的暗文输入,直接输入完成后回车即可
2.更好的实现以上目的的命令(项目中用的命令):git clone
真实项目开发流程:
1.组长或负责人创建中央仓库.
2.小组成员基于
$ git clone 远程仓库git地址 别名:可以不设置默认是仓库名
这个命令行将远程仓库及默认内容克隆到本地一份
利用该地址clong一份文件后,clone下来的文件夹默认就和远程仓库连接了,且自带了本地git仓库。
所以clone一行命令解决了三件事情:
初始化了一个本地仓库"git init"
和远程仓库进行了连接
把远程仓库默认内容拉取到本地“git pull”
3.每个小组成员写完自己的程序后,再提交到历史区后通过“git pull/git push”将本地信息和远程仓库信息保持同步即可(可能涉及冲突的处理)