git的安装与使用

Git简介

Git简史

git的安装与使用

Git官网

Git官网
官网下载慢可以用淘宝镜像下载
镜像下载

Git优势

1、大部分操作在本地完成,不需要联网
2、完整性保证
3、尽可能添加数据而不是删除或修改数据
4、分支操作非常快捷流畅
5、与 Linux 命令全面兼容

Git安装

git的安装与使用

使用vim 编辑器
git的安装与使用

git的安装与使用

安装成功后右键任何一个目录会显示这两个选项
git的安装与使用

Git的结构

git的安装与使用

Git 和代码托管中心

代码托管中心的任务:维护远程库

局域网环境下

GitLab 服务器

外网环境下

Github
码云

本地库和远程库

团队内部协作

git的安装与使用

git pull 和git clone的区别
都是往下拉代码,git clone是克隆,git pull 是拉
从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库,叫做clone.(clone是将一个库复制到你的本地,是一个本地从无到有的过程)
从远程服务器获取到一个branch分支的更新到本地,并更新本地库,叫做pull.(pull是指同步一个在你本地有版本的库内容更新的部分到你的本地库)

跨团队协作

git的安装与使用

Git命令行操作

本地仓库初始化

git init
会在该目录下生成.git文件
git的安装与使用

注意:.git 目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡
乱修改。

设置签名

没有设置签名提交时会提示
git的安装与使用

项目级别

git config user.name tom_pro
git config user.email [email protected]

用户级别

git config --global user.name tom_glb
git config --global user.email [email protected]
信息保存位置:~/.gitconfig 文件
git的安装与使用

级别的优先级

1、就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
2、如果只有系统用户级别的签名,就以系统用户级别的签名为准
3、二者都没有不允许

基本操作

状态查询

git status
查看工作区、暂存区状态
git的安装与使用

主分支上
没有提交
更改可以被提交
绿色代表暂存区存在
红色代表修改过还没提交到暂存区

添加

git add 文件名
将工作区的“新建/修改”添加到暂存区

提交

git commit -m “commit message” [file name]
将暂存区的内容提交到本地库
git的安装与使用

git的安装与使用

查看历史记录

git log

git的安装与使用

git log --pretty=oneline

git的安装与使用

git log --oneline

git的安装与使用

git reflog

git的安装与使用

[email protected]{移动到当前版本需要多少步}

前进后退

基于索引值操作(推荐)

git reset --hard [局部索引值]
git reset --hard a6ac91

使用^符号:只能后退

git reset --hard HEAD^
注:一个^表示后退一步,n个表示后退n步

使用~符号:只能后退

git reset --hard HEAD~n
注:表示后退n步

reset命令的三个参数对比

–soft参数

仅仅在本地库移动HEAD指针
git的安装与使用

–mixed参数

在本地库移动HEAD指针
重置暂存区
git的安装与使用

–hard参数

在本地库移动HEAD指针
重置暂存区
重置工作区

三种参数对比

–hard:三个区全部同步

删除文件并找回

前提:删除前,文件存在时的状态提交到了本地库
操作:git reset --hard [指针位置]
–hard 参数三个区同步

1、删除操作已经提交到本地库:指针位置指向历史记录
2、删除操作尚未提交到本地库:指针位置使用 HEAD
就是把指针回到文件存在的历史记录

比较文件差异

git diff [文件名]
将工作区中的文件和暂存区进行比较
git diff [本地库中历史版本] [文件名]
将工作区中的文件和本地库历史记录比较

不带文件名比较多个文件

分支管理

什么是分支

在版本控制过程中,使用多条线同时推进多个任务
git的安装与使用

分支可以单独开发
分支和分支可以合并,如果冲突必须处理冲突

分支的好处

1、并行推进多个功能开发,提高开发效率
2、支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

分支操作

创建分支

git branch [分支名

查看分支

git branch -v

切换分支

git checkout [分支名

合并分支

1、切换到接受修改的分支(被合并,增加新内容)上git checkout [被合并分支名]
2、执行 merge 命令git merge [有新内容分支名]

解决冲突

冲突的表现
git的安装与使用

冲突的解决
1、编辑文件,删除特殊符号
2、把文件修改到满意的程度,保存退出
3、gt add [文件名]
4、git commit -m “日志信息”
注意:此时commit一定不能带具体文件名

Git 基本原理

哈希

git的安装与使用

哈希是一个系列的加密算法,各个不同的哈希算法虽然加密强度不同,但是有以下几共同点

共同点

1、不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定。
2、哈希算法确定,输入数据确定,输出数据能够保证不变
3、哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大
4、哈希算法不可逆
Git 地城采用的是SHA-1算法
哈希算法可以被用来验证文件。
git的安装与使用

Git 保存版本的机制

集中式版本控制工具的文件管理机制

以文件变更列表的方式存储信息。这类系统将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。增量式
git的安装与使用

Git的文件管理机制

Git 把数据看作是小型文件系统的一组快照。每次提交更新时 Git 都会对当前的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。所以 Git 的工作方式可以称之为快照流。
git的安装与使用

Git文件管理机制细节

Git的“提交对象

git的安装与使用

提交对象及其父对象形成的链条

git的安装与使用

Git分支管理机制

分支的创建

git的安装与使用

分支的切换

git的安装与使用

git的安装与使用

git的安装与使用

git的安装与使用