1.git的概述

1.1 git的概述以及优势

(1) git其实是一个版本控制工具(简要概述)

  1. 协同修改

    a.多人并行不相互影响的修改服务端的同一个文件

  2. 数据备份

    a.不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态

  3. 版本管理

    a.在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率,这方面SVN采用的是增量式管理的方式,而git采取了文件系统快照的方式

  4. 权限控制

    a.对团队中参与开发的人员进行权限控制
    b.对团队开发者贡献的代码进行审核—git独有

  5. 历史记录

    a.查看修改人 修改时间 修改内容 日志信息

  6. 分支管理

    a.允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。

(2) Git的优势

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

1.2 git的结构

(1)git的结构

1.工作区:写代码(使用git add添加到暂存区)
2.暂存区:临时存储(使用git commit -m “说明” 添加到本地库)
3.本地库:历史版本

PS:最后可以将本地库数据推送至远程仓库

1.3 git的安装

1.https://git-scm.com/ 进入官网下载git
PS:根据自己的系统去下载
在这里插入图片描述

2.下载完之后直接安装即可,选择全选下一步即可

2.git命令的操作

2.1 git命令的简单操作

(1) 本地库初始化

1.命令:git init

在这里插入图片描述
PS:输入命令回车就可以看到多了个.git的隐藏文件夹。如果你命令输入正确但是看不到这个文件夹说明你没有打开显示隐藏文件(打开操作如下win10环境)
在这里插入图片描述

(2) 设置签名

1.命令:项目级别/仓库级别:仅在当前本地库范围有效
	git config user.name 用户名
	git config user.email 邮箱
2.命令:系统用户级别:登录当前操作系统的用户范围
	git config --global user.name 用户名
	git config --global user.email 邮箱

PS:优先级:当两者都有时,就近原则即采用项目级别

(3) 查看当前更改状态

1.命令:git status

PS:先在文件夹添加一个文件(shallow.txt),进行演示,如图
在这里插入图片描述
(4) 将文件添加至暂存区

1.命令:git add 文件名

比如:git add shallow.txt

2.命令:git add .
PS:这个命令为添加所有文件至暂存区

PS:命令1的图片演示
在这里插入图片描述
PS:命令2的图片演示
在这里插入图片描述

(5)将添加到暂存区的文件移除

1.命令:git rm --cached 文件路径

在这里插入图片描述
(6)将暂存区文件存入本地库

1.命令:git commit
2.命令:git commit -m "对这个提交的说明"

PS:命令1的图片演示
1.你输入完:git commit命令会进入这个界面(这个界面是需要你在这里填写提交说明的)
在这里插入图片描述
2.提交说明方法:按 i 进入输入说明状态
在这里插入图片描述
PS:编译完之后按“ESC”键 然后输入 :wq 再回车即可
在这里插入图片描述
PS:命令2的演示
在这里插入图片描述
PS:这个就不用向上面那样进如特定的说明界面了,取决于自己怎么用吧

(7)查看历史提交的记录

1.命令:git log
2.命令:git log --pretty=oneline
3.命令:git log --oneline
4.命令:git reflog

PS:这个就不进行全部演示了,就演示第一个吧

在这里插入图片描述
PS:以后可以根据这个索引值返回指定的版本

(8) 版本前进后退

1) 命令:基于索引
	1.git reset --hard 索引值
	
1) 命令:基于^(这个只能一步一步回退,并且一个^符号代表一步)
	1.git reset --hard HEAD^
	
3)命令:基于~数值(~5表示后退5步)
	1.git reset --hard HEAD~数值

PS:就拿第一个演示吧,我们先多添加几个提交
在这里插入图片描述
PS:运行完这个回退命令之后,回到了指定的版本
(9) reset命令的三个参数对比

1. --soft
1)仅仅在本地库移动HEAD指针
2)命令:git reset --soft 索引值

2. --mixed
1)在本地库移动HEAD指针
2)重置暂存区
3)命令:git reset --mixed 索引值

3. --hard
1)在本地库移动HEAD指针
2)重置暂存区
3)重置工作区
4)命令:git reset --hard 索引值

PS:这个可以结合回退版本理解,就不演示了

(10) 删除文件并找回

1. 命令:rm 文件名

PS:由此可以看出。删除文件也需要去执行git add 和 git commit
在这里插入图片描述
PS:因为删除之后也去git commit了,所以我们可以根据这个思路去回到删除版本前,等同于找回文件

(11)比较文件差异

1.命令:git diff 文件名(和暂存区进行比较)

在这里插入图片描述
PS:绿色 **+**都是增加的内容, 红色 **-**都是删除的内容

PS:补充:命令:git diff HEAD 索引值 文件名(和本地库某个版本进行比较)

3.git的分支

3.1 分支以及分支的好处

(1) 什么是分支

1. 在版本控制过程中,使用多条线同时推进多个任务

(2)分支的好处

1. 同时并行的推进功能开发,提高开发效率
2. 各个分支在开发过程中,如果某一个分支开发失败,不会影响到其他的分支,失败的分支删除重来即可。

3.2 分支操作的相关命令

(1) 创建分支

1) 命令:git branch 分支名

在这里插入图片描述

(2) 查看分支

1) 命令:git branch -v(查看所有分支)

在这里插入图片描述
(3) 切换分支

1) 命令:git checkout 分支名

在这里插入图片描述
(4) 合并分支(分两步完成)

1) 命令1:git checkout主分支名 (切换到主分支)
2) 命令2:git merge 要合并的分支名

在这里插入图片描述
(5) 合并分支产生冲突的解决办法
PS;问题产生原因:多个分支改的文件一样,且改的位置也一样。
我们模拟一下,比如我用主分支改shallow02.txt的文件的第一行,然后提交,然后我又切换到shallow分支去改shallow02.txt文件的第一行再去提交,此时问题就出现了,如下
在这里插入图片描述
在这里插入图片描述
PS:解决冲突的方法

a.此时因为是两个分支改的是同一个文件同一个位置。也就是说,我们需要去找另一个修改这个地方的人,跟他沟通沟通,确认这个到底是什么样
b.然后再执行一遍提交即可

PS:此时再看
在这里插入图片描述

4.git的基本原理

4.1 git之哈希

(1) 哈希

1.git 底层采用的是SHA-1算法
2.哈希是一个系列的加密算法,各个不同的哈希算法虽然加密强度不同,但是有以下几个共同点:
	1)不管输入的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定
	2)哈希算法确定,输入数据确定,输出数据能保证不变
	3)哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大
	4)哈希算法不可逆
3.哈希算法可以用来验证文件

4.2 git的保存版本的机制

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

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

(2)git 的文件管理机制

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

5.git与GitHub

5.1 给GitHub的地址起别名

(1) 给github远程仓库的地址起个别名,方便以后推送等操作

1. 命令:git remote add 别名 gitHub远程仓库地址

PS:演示
在这里插入图片描述

5.2 推送代码到远程库

(1)利用别名推送代码到远程仓库

1.命令:git push 别名 分支名

在这里插入图片描述

5.3 拉取远程库代码

(1)克隆远程仓库代码

1. 命令:git clone gitHub远程库地址

在这里插入图片描述
PS:1.当用完这个命令拉取(克隆)完代码的时候,它会默认创建origin远程库别名和初始化本地库。2.当第一次拉完代码之后,可以使用git pull来更新代码
git pull就相当于:git fetch 和 git merge

6.SSH免密登录

6.1 设置SSH公钥

(1)找到当前github仓库的账号,也就是邮箱号
(2)随便找个文件夹打开git命令窗口输入命令:

1) 命令:ssh-keygen -t rsa -C 邮箱账号

在这里插入图片描述
PS:然后即可去文件夹找密钥文件:
在这里插入图片描述
在这里插入图片描述
PS:打开xxxx.pub复制即可
在这里插入图片描述

在这里插入图片描述
然后名字随便取,确定然后验证密码即可
PS:弄完上面操作之后去复制SSH地址
在这里插入图片描述
PS:这个SSH地址起个别名,也是方便后续
在这里插入图片描述

7.Eclipse操作git

7.1 将工程初始化为本地库

(1)直接看图操作演示吧
PS:找到你的工程项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.2 eclipse暂存区界面

(1)看图演示
在这里插入图片描述
在这里插入图片描述
PS:然后点击Commit就可以提交;

7.3 配置忽略文件

PS:先建一个java.gitignore文件,加入要忽略的文件(大致就个样子,根据自己的要求配)
在这里插入图片描述
PS;然后去.gitconfig文件里添加这个文件(java.gitignore)的路径(这个文件一般在你的c盘用户里面比如我的:c/用户(user)/shallow/.gitconfig)
在这里插入图片描述

7.4 git在eclipse里面一些的基本操作

(1)添加文件到暂存区
在这里插入图片描述
在这里插入图片描述

PS:正确提完之后的文件都会有 绿色的 “+”
(2) 将暂存区提交到本地库
在这里插入图片描述
PS:记得写日志。补充一点,我们可以不用去add 可以直接在Commit界面将待提交文件拖到暂存区然后Commit
在这里插入图片描述
(3) 推送到远程库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
PS:也可以点Next去添加一些日志信息
注意:因为是跟github进行交互,所以网络慢有时会报错,所以要是失败直接再操作就可以
(4) 克隆
PS:右键空白选择import
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
(5) 创建分支(点击other…可以切换分支)
在这里插入图片描述
在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐