Git基于文档版本管理,数据恢复,分支,冲突管理
什么是Git
是一个分布式的代码管理工具 (多人对他操作)
可以是C/S架构,也就是Client/Server
只要有适当的权限,每个客户端都可以下载或上传数据到服务器
Git工作原理
git重要的三个工作区域:
工作区:写代码的目录。就是项目代码存放的目录。
暂存区:工作区与版本库之间的缓冲地带。位置是.git/index
版本库:工作区快照存放的目录。在工作区下,名为.git的目录
工作区->暂存区:git add
暂存区->版本库:git commit
Git工作流程
基本的 Git 工作流程如下:
在工作区中修改文件。
将想要提交的更改暂存,这样会将更改添加到暂存区。
提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。
Git安装配置
yum install -y git
git config --global user.name nfx
git config --global user.email xx@xx.com
git config --list #查看配置
git init mytest 生成git管理的仓库
这两条配置很重要,每次Git提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录
git config 生成的配置文件在 ~/.gitconfig 中 即使上面配置出了问题也可以在文件中去修改用户名和email
生成仓库的两种方式
生成仓库后对仓库的操作 都在生成的仓库中去操作库(cd 进去)
-
直接生成 git init 目录名
-
先创建目录 mkdir 目录名 cd 进去目录 然后 git init生成
基本操作
工作区--->暂存区:git add
暂存区--->版本库:git commit
git add .所有文件都提交 -----------把目录下的所有文件都添加到暂存区
git commit xx文件名 ------------把单个文件添加到暂存区
git reset HEAD 文件名 --------把添加到暂存区的文件撤出去
干净的工作区
所谓干净的工作区就是 : 工作区与 版本库最新的内容是一致的(git status)
查看版本库
git log--------查看(当前版本与历史版本的)详细信息
git log --oneline 简单的信息(当前版本与历史版本的)
git log --pretty=oneline 详细的单行信息
HEAD
头指针 可移动的指针
指向任何分支或版本
通过移动指针 可以还原到任何版本
指向哪里工作区就显示相应的数据 “想看哪里点哪里”
操作
git reset --hard ID------------可以回滚到你之前提交的那个ID的位置
git reflog 显示HEAD指针移动的历史
HEAD@{0}-----表示当前的指针位置
HEAD@{1}-----表示上一次指针位置
所以说版本的切换就是对指针的操作
分支
常用的分支
master主分支 主要是稳定的版本分区 比较老落后 正式版本都从master拉取
develop开发分支 更新和改动最频繁的分支 开发都在develop分支上进行
release预发行分支 一个版本的功能全部开发完成后交给测试 ,有 BUG后去修复的分支
features功能分支 是开发分支的子分支 里面包含每个程序员的开发功能点 features开发完成后合入develop分支
hotfix热修补 一个最不希望看到的分支 上线的版本中出现重大的BUG 进行修复的分支
分支的操作
git branch --------------查看分支
*master ---------*代表所在分支的标识 (也可以通过git status 显示的位于分支 master来看出)
git branch 分支名称 -------------创建分支
git branch -d 分支名称 -----------删除分支
git checkout 分支名称 -------------切换分支
git merge 分支名称 -m "描述信息"------------------合并分支
即使git commit 不加-m选项 也不要慌 这时你已经进入了vim 的编辑描述信息的模式 直接写就行
分支合并 文件名同名 内容不一样 需要与开发的这两个不同分支的人去沟通 看是否合并到同一个文件中
Tag
某次提交打标记,以示本次提交的重要
git tag标记名
git tag -d 标记名(删除标记)
你要知道
1 什么是git
git是一个分布式的代码管理仓库
git是一个自由,开源的分布式版本控制系统。在git管理下,文件和目录可以超越时空。git将文件存放在版本库里。它可以记录每一次文件和目录的修改情况,这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。
2 客户端与git服务器通信的方式有哪些
本地访问 git clone file:///var/git/project
ssh服务器方式访问 git clone root@服务器IP:/var/git/project
git服务器方式访问 git clone git://服务器IP/var/git/project
web服务的方式 firefox http://服务器IP/git
3 Git移动HEAD指针的命令是什么
git reset --hard 版本编号
4 Git如何创建并切换分支
创建分支:git branch 分支名称
切换分支:git checkout 分支名称