git是一个分布式代码版本管理控制系统 》
-记录当前产品代码的所有版本信息(历史修改信息),而且方便快速回退到某一个具体的版本 》
- 方便团队协作开发,能够检测代码冲突,能够合并代码等
svn:在git诞生之前就已经存在的版本控制系统,不过它是“集中式”管理
git:是分布式版本管理系统 每个开发者的本地都是一个git仓库 //=》在本地就可以生成历史版本
// 集中式和分布式的优缺点
运行速度:
分布式:较快。因为本地有数据副本,所有操作均是对副本进行操作。
集中式:较慢。因为每次的数据操作均是通过互联网络对数据中心进行操作。
安全性:
分布式:数据中心安全性相同。分店安全性略高。分店只需要一台电脑短暂时间上网,受黑客攻击机率较小。
集中式:数据中心安全性相同。分店安全性略低。分店所有电脑所有时间上网,受黑客攻击机率较大。
### git的工作原理和基础操作
git的工作流程在本地创建git仓库管理我们的代码
> 初次使用git,我们先在本地配置一些基础信息
$ git config -l (查看本地创建的信息)
// user.name=<E5><AE><8B><E5><BA><B7><E4><B9><90>
// user.email=songkangle@iqurong.com
$ git config --global user.name songkangle(名字)
$ git config --global user.email sklpython@163.com
建议大家配置的用户名和邮箱和gitHub保持一致,(这样以后在本地向gitHub推送内容的时候,能够展示出谁推荐的)
1.git init(创建一个本地仓库)
》 会在当前目录下创建一个空的仓库,文件目录中生曾一个“.git”的隐藏文件,这个文件很重要,我们本地仓库的版本信息等都存储在这里。
2.在当前目录(git仓库根目录创建一个".gitignore"文件,这个文件中存储了当git提交的时候所忽略的文件)
touch .gitignore
git是LINUX开发的
### git工作原理及操作
当我们在本地创建一个git仓库后,我们可以基于这个仓库管理我们的代码。
”git的工作流程“
》 每一个git仓库都划分为三个区域
》 -工作区: 编辑代码的地方
》 -暂缓区: 临时存储要生成版本代码的地方
》 -历史区: 存储的是生成的每一个版本代码
···工作区提交到暂缓区···
git atatus
:查看代码或者文件的状态(当前处于哪个区)
:红色(当前处于工作区,还没有提交到暂缓区)
:绿色(当前处于暂缓区,还没有提交到历史区)
:如果没有文件,代码三个区域代码已经同步,历史版本也在历史区生成了
git add filename(文件)
git add .或者-A(所有)
把当前工作区中所有最新修改的文件提交代暂缓区
···暂存区到历史区···
git commit
这样执行后,会弹出一个提交文本输入界面,需要我们编写本次提交到历史区,给当前版本编写的备注信息
》 先按i进入编辑插入模式
》 输入备注信息
》 按ESC
》 输入“:wq”保存并退出
git commit -m"自己需要编写的备注信息"
git log 产看提交记录
git reflog 查看所有的历史记录(包括历史区回滚后)
查看每个区代码的区别:
git diff 工作区VS暂缓区
git diff master 工作区VS历史区(master分支)
git diff --cached 暂存区VS历史区
### git和gitHub同步
1.让本地的git仓库和远程仓库建立关系
git remote -v
(查看所有的关联信息)
git remote add origin xxx【远程仓库git地址】
建立关联
git remote remove xxx
移除关联
我们远程仓库管理的名字一般叫origin
2.把本地的代码推送到远程仓库上,或者从远程仓库上拉取最新的信息到本地仓库
》 我们本地推送和拉取的信息,既有代码也有版本信息,所有说与其说是推送和拉取,不如说是和远程仓库保持信息的同步。
### 在推送之前,我们都应该先拉取
git push origin master
git pull origin (这个名字就是和远程仓库关联的这个名字,以自己设置的为主) master
从远程仓库的master分支拉取最新的信息
git push origin master
把自己本地信息推送到远程仓库master分支下
如果名字是origin,分支走的也是master分支,后面的都可以不写,也就是执行 git pull /git push
网友评论