git的安装与使用

文章目录

  • Git简介
    • Git简史
    • Git官网
    • Git优势
    • Git安装
    • Git的结构
    • Git 和代码托管中心
      • 局域网环境下
      • 外网环境下
    • 本地库和远程库
      • 团队内部协作
      • 跨团队协作
  • Git命令行操作
    • 本地仓库初始化
    • 设置签名
      • 项目级别
      • 用户级别
      • 级别的优先级
    • 基本操作
      • 状态查询
      • 添加
      • 提交
      • 查看历史记录
        • git log
        • git log --pretty=oneline
        • git log --oneline
        • git reflog
      • 前进后退
        • 基于索引值操作(推荐)
        • 使用^符号:只能后退
        • 使用~符号:只能后退
      • reset命令的三个参数对比
        • --soft参数
        • --mixed参数
        • --hard参数
        • 三种参数对比
      • 删除文件并找回
      • 比较文件差异
    • 分支管理
      • 什么是分支
      • 分支的好处
      • 分支操作
        • 创建分支
        • 查看分支
        • 切换分支
        • 合并分支
        • 解决冲突
  • Git 基本原理
    • 哈希
      • 共同点
    • Git 保存版本的机制
      • 集中式版本控制工具的文件管理机制
      • Git的文件管理机制
      • Git文件管理机制细节
        • Git的“提交对象
        • 提交对象及其父对象形成的链条
    • Git分支管理机制
      • 分支的创建
      • 分支的切换
    • 注册github
    • 创建远程仓库
    • 创建远程库地址别名
    • 推送
    • 克隆
    • 团队成员邀请
    • 拉取
    • 跨团队协作
      • 1、fork到自己的仓库进行修改push
      • 2、提交pullrequest
      • 3、经仓库所有者审核
    • 使用ssh免密登录
      • 进入当前用户的家目录
      • 删除.ssh 目录
      • 运行命令生成.ssh 密钥目录
      • 进入.ssh 目录查看文件列表
      • 输入复制的密钥信息
      • 回到 Git bash 创建远程地址别名
      • 推送文件进行测试

Git简介

Git简史

git的安装与使用_第1张图片

Git官网

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

Git优势

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

Git安装

git的安装与使用_第2张图片

使用vim 编辑器
git的安装与使用_第3张图片

git的安装与使用_第4张图片

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

Git的结构

git的安装与使用_第6张图片

Git 和代码托管中心

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

局域网环境下

GitLab 服务器

外网环境下

Github
码云

本地库和远程库

团队内部协作

git的安装与使用_第7张图片

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

跨团队协作

git的安装与使用_第8张图片

Git命令行操作

本地仓库初始化

git init
会在该目录下生成.git文件
git的安装与使用_第9张图片

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

设置签名

没有设置签名提交时会提示
git的安装与使用_第10张图片

项目级别

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的安装与使用_第11张图片

级别的优先级

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

基本操作

状态查询

git status
查看工作区、暂存区状态
git的安装与使用_第12张图片

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

添加

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

提交

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

git的安装与使用_第14张图片

查看历史记录

git log

git的安装与使用_第15张图片

git log --pretty=oneline

在这里插入图片描述

git log --oneline

在这里插入图片描述

git reflog

在这里插入图片描述

HEAD@{移动到当前版本需要多少步}

前进后退

基于索引值操作(推荐)

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

使用^符号:只能后退

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

使用~符号:只能后退

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

reset命令的三个参数对比

–soft参数

仅仅在本地库移动HEAD指针
git的安装与使用_第16张图片

–mixed参数

在本地库移动HEAD指针
重置暂存区
git的安装与使用_第17张图片

–hard参数

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

三种参数对比

–hard:三个区全部同步

删除文件并找回

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

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

比较文件差异

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

不带文件名比较多个文件

分支管理

什么是分支

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

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

分支的好处

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

分支操作

创建分支

git branch [分支名

查看分支

git branch -v

切换分支

git checkout [分支名

合并分支

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

解决冲突

冲突的表现
git的安装与使用_第19张图片

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

Git 基本原理

哈希

git的安装与使用_第20张图片

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

共同点

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

Git 保存版本的机制

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

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

Git的文件管理机制

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

Git文件管理机制细节

Git的“提交对象

git的安装与使用_第24张图片

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

git的安装与使用_第25张图片

Git分支管理机制

分支的创建

git的安装与使用_第26张图片

分支的切换

git的安装与使用_第27张图片

git的安装与使用_第28张图片

git的安装与使用_第29张图片

git的安装与使用_第30张图片# 向github远程仓库提交代码

注册github

创建远程仓库

git的安装与使用_第31张图片

创建远程库地址别名

git remote -v 查看当前所有远程地址别名
git remote add [别名] [远程地址]
在这里插入图片描述

推送

git push [别名] [分支名]

克隆

git clone [远程地址]

效果
1、完整的把远程库下载到本地
2、创建 origin 远程地址别名
3、初始化本地库

团队成员邀请

拉取

pull=fetch+merge
git fetch [远程库地址别名] [远程分支名]
git merge [远程库地址别名/远程分支名]
git pull [远程库地址别名] [远程分支名]

跨团队协作

1、fork到自己的仓库进行修改push

2、提交pullrequest

git的安装与使用_第32张图片

3、经仓库所有者审核

使用ssh免密登录

进入当前用户的家目录

$ cd ~

删除.ssh 目录

$ rm -rvf .ssh

运行命令生成.ssh 密钥目录

$ ssh-keygen -t rsa -C [email protected]
[注意:这里-C 这个参数是大写的 C]

进入.ssh 目录查看文件列表

$ cd .ssh
$ ls -lF
$ cat id_rsa.pub
复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG
keys
New SSH Key

输入复制的密钥信息

回到 Git bash 创建远程地址别名

git remote add origin_ssh [email protected]:atguigu2018ybuq/huashan.git

推送文件进行测试

你可能感兴趣的:(git,java,linux)