git教程(含git基础,git操作,github,git分支)

git学习

git指令速查表:https://www.w3cschool.cn/git/git-cheat-sheet.html

起步

资料下载:git学习.md
https://download.csdn.net/download/qq_43682422/85302833
typora 下载:
链接:https://pan.baidu.com/s/1_YNCbvOLOMuMigcLei546Q
提取码:icya

命令清单
常用命令补充

关于版本控制

1.文件的版本

在这里插入图片描述

2.版本控制软件

在这里插入图片描述

3.使用版本控制软件的好处

在这里插入图片描述

4.版本控制系统分类

在这里插入图片描述

扫描二维码关注公众号,回复: 14662407 查看本文章

4.1本地版本控制系统

在这里插入图片描述

4.2集中化版本控制系统
在这里插入图片描述

4.3分布式版本控制系统

在这里插入图片描述

git基础

1.什么是Git

Git是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。

特点: 项目越大越复杂,协同开发者越多,越能体现出Git的高性能和高可用性!

2.Git的特性

Git之所以快速和高效,主要依赖于它的如下两个特性:

1)直接记录快照,而非差异比较

2)近乎所有的操作都是本地执行

2.1 SVN的差异比较

传统的版本控制系统(例如SVN)是基于差异的版本控制,他们存储的是一组基本文件和每个文件随时间逐步累积的差异。

在这里插入图片描述

好处: 节省磁盘空间

缺点: 耗时,效率低

2.2 Git的记录快照

Git快照是在原有文件版本的基础上重新生成一份新的文件,类似于备份。为了效率,如果文件没有修改,Git不再重新存储该文件,而是只保留一个链接指向之前存储的文件。
在这里插入图片描述

**缺点:**占用磁盘空间大

**优点:**版本切换时非常快,因为每个版本都是完整的文件快照,切换版本时直接恢复目标版本的快照即可。

**特点:**空间换时间

2.3 近乎所有的操作都是本地执行

在这里插入图片描述

3.Git中的三个区域

使用Git管理的项目,拥有三个区域,分别是工作区、暂存区、Git仓库。
在这里插入图片描述

4.Git中的三种状态

在这里插入图片描述

在这里插入图片描述

5.基本的Git工作流程

在这里插入图片描述

使用Git

1.安装配置Git

在windows中下载并安装Git

在开始使用Git管路项目的版本之前,需要将它安装到计算机上。可以使用浏览器访问如下的网址,根据自己的操作系统,选择下载对应的Git安装包:

https://git-scm.com/downloads

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 注意 : 一路next就行,不需要任何操作。

  • 检验有无安装成功,鼠标右键空白区域,出现如图这两项选项则安装成功。

在这里插入图片描述

2.配置用户信息

安装完Git之后,要做的第一件事就是设置自己的用户名和邮件地址。因为通过Git项目进行版本管理的时候,Git需要使用这些基本信息来记录是谁对项目进行了操作:

git config --global user.name "icy"
git config --global user.email "[email protected]"
  • 注意:如果使用了–gloabal 选项,那么该命令只需要运行一次,即可永久生效。

回到桌面,右键选择Git Bash Here,打开Git终端,配置用户名和邮箱。

在这里插入图片描述
在这里插入图片描述

3.Git的全局配置文件

通过git config --global user.name "icy"和git config --global user.email "[email protected]"配置的用户名和邮箱地址,会被写入到C://Users/用户文件夹/.gitconfig文件中。这个文件是Git的全局配置文件,配置一次即可永久生效。

在这里插入图片描述

右键使用记事本打开该文件可以查看自己曾经对Git做了哪些全局性的配置。

在这里插入图片描述

4.检查配置信息

除了使用记事本查看全局的配置信息之外,还可以运行如下终端命令,快速的查看Git的全局配置信息:

# 查看所有的全局配置
git config --list --global
# 查看指定的全局配置项
git config user.name
git config user.email
5.获取帮助信息

可以使用git help 命令 ,无需联网即可在浏览器中打开帮助手册,例如:

# 想要打开git config 命令的帮助手册
git help conifg

如果不想查看完整的手册,那么还可以用-h选项获得更简明的"help"输出:

# 想要获取 git conifg 命令的快速参考
git config -h

使用Git基本操作

1.获取Git仓库的两种方式
  • 将尚未进行版本控制的本地目录转换为Git仓库

  • 从其他服务器克隆一个已存在的Git仓库

以上两种方式都能够在自己的电脑上得到一个可用的Git仓库

2.在现有的目录中初始化仓库

如果自己有一个尚未进行版本控制的项目目录,想要用Git来控制它,需要执行如下两个步骤:

  • 在项目目录中,通过鼠标右键打开 “Git Bash”
  • 执行 git init 命令将当前的目录转化为Git仓库

git init 命令会去创建一个名为.git 的隐藏目录,这个.git目录就是当前项目的Git仓库,里面包含了初始的必要文件,这些文件是Git仓库的必要组成部分。

在这里插入图片描述

在这里插入图片描述

3.工作区中文件的4种状态

工作区中的每一个文件可能有4种状态,这四种状态共分为两大类,如图所示:

在这里插入图片描述

5.检查文件的状态

可以使用 git status 命令查看文件处于什么状态,例如:

在这里插入图片描述

在状态报告中可以看到新建的index.html文件出现在Untracked files(未跟踪的文件)下面。

未跟踪的文件意味着Git之前的快照(提交)中没有这些文件;Git不会自动将之纳入跟踪范围,除非明确地告诉它“我需要使用Git跟踪管理该文件”。

5.1以精简的方式显示文件状态

使用 git status 输出的状态报告很详细,但有些繁琐。如果希望以精简的方式显示文件的状态,可以使用如下两条完全等价的命令,其中 -s 是 --short 的简写形式:

# 以精简的方式显示文件状态
git status -s
git status --short

未跟踪的文件前面有红色的??标记,例如:

在这里插入图片描述

6.跟踪新文件

使用命令 git add 开始跟踪一个文件。所以,要跟踪index.html文件,运行如下的命令即可:

git add index.html

此时再运行 git status 命令,会看到index.html文件在Change to be committed 这行下面,说明已被跟踪,并处于暂存状态:

在这里插入图片描述

以精简形式显示的文件状态:

新添加到暂存区中的文件前面有绿色的A标记。

在这里插入图片描述

7.提交更新

现在暂存区中有一个index.html 文件等待被提交到Git仓库中进行保存。可以执行git commit命令进行提交,其中 -m 选项后面是本次的提交消息,用来对提交的内容做进一步的描述:

git commit -m "新建了index.html文件"

提交成功后,会显示如下的信息:

在这里插入图片描述

提交成功后,再次检查文件的状态,得到提示如下:

在这里插入图片描述

证明工作区中所有的文件都处于“未修改”的状态,没有任何文件需要被提交。

在这里插入图片描述

8.对已提交的文件进行修改

目前,index.html文件已经被Git跟踪,并且工作区和Git仓库中的index.html文件内容保持一致。当我们修改了工作区中index.html的内容之后,再次运行git status 和 git status -s 命令会看到如下的内容:
在这里插入图片描述

文件 index.html 出现在 Changes not staged for commit 这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。

  • 注意: 修改过的、没有放入暂存区的文件前面有红色得M标记。
9.暂存已修改的文件

目前,工作区中的index.html 文件已被修改,如果要暂存这次修改,需要再次运行 git add 命令,这个命令是个多功能命令,主要有如下3个功效:

  • 可以用它开始跟踪新文件
  • 把已跟踪的、且已修改的文件放到暂存区
  • 把有冲突的文件标记为已解决状态

在这里插入图片描述

10.提交已暂存的文件

再次运行 git commit -m “提交消息” 命令,即可将暂存区中记录的index.html的快照,提交到Git仓库中进行保存:

在这里插入图片描述

在这里插入图片描述

11.撤销对文件的修改

撤销对文件的修改指的是:把工作区中对应的文件的修改,还原成Git仓库中保存的版本。

操作的结果:所有的修改都会丢失,且无法恢复!危险性比较高,请谨慎操作!

git checkout -- index.html

在这里插入图片描述

  • 撤销操作的本质:用Git仓库中保存的文件,覆盖工作区中指定的文件。
12.向暂存区中一次性添加多个文件

如果需要被暂存的文件个数比较多,可以使用如下的命令,一次性将所有的新增和修改过的文件加入暂存区:

git add .
  • 今后在项目开发中,会经常使用这个命令,将新增和修改过后的文件加入暂存区。
    在这里插入图片描述

在这里插入图片描述

13.取消已暂存的文件

如果需要从暂存区中移除对应的文件,可以使用如下的命令:

git reset HEAD 要移除的文件名称

移除多个文件使用 . 号

git reset HEAD .
14.跳过使用暂存区域

Git标准工作流程是工作区 -> 暂存区 -> Git仓库,但有时候这么做略显繁琐,此时可以跳过暂存区,直接将工作区中的修改提交到Git仓库,这时候Git工作的流程简化为了工作区 -> Git仓库。

Git提供了一个跳过使用暂存区的方式,只要在提交的时候,给git commit 加上 -a 选项,Git就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过git add步骤:

git commit -a -m "描述消息"

在这里插入图片描述

15. 移除文件

从Git仓库中移除文件的方式有两种:

  • 从Git仓库和工作区中同时移除对应的文件
  • 只从Git仓库中移除指定的文件,但保留工作区中对应的文件
# 从Git仓库和工作区中同时移除对应的文件
git rm -f index.js
# 只从 Git 仓库中移除 index.css 但保留工作区中的 index.css文件
git rm --cached index.css
16. 忽略文件

一般我们总会有些文件无需纳入Git的管理,也不希望它们总出现在未跟踪文件列表。在这种情况下,我们可以创建一个名为 .gitignore的配置文件,列出要忽略的文件的匹配模式。

文件.gitignore的格式规范如下:

  • 以#开头的是注释
  • 以/结尾的是目录
  • 以/开头防止递归
  • 以为!开头表示取反
  • 可以使用glob模式进行文件和文件夹的匹配(glob指简化了正则表达式)
17.glob模式

所谓glob模式是指简化了的正则表达式:

  • 星号*匹配0个或多个任意字符
  • [abc]表示匹配任何一个列在方括号中的字符(这里表示匹配一个a或者一个b或者一个c)
  • 问号?只匹配一个任意字符
  • 在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9]表示匹配所有0到9的数字)
  • 两个星号**表示匹配任意中间目录(比如 a/ * * /z 可以匹配a/z、a/b/z、a/b/c/z等)
18. .gitignore文件例子

在这里插入图片描述

在这里插入图片描述

19. 查看提交历史

如果希望回顾项目的提交历史,可以使用git log这个简单且有效的命令。

不想查看了,按Q退出。

# 按照时间先后顺序列出所有的提交历史,最近的提交排在最上面
git log

# 只展示最新的两条提交历史,数字可以按需进行填写
git log -2 

# 在一行上展示最近两条提交历史的信息
git log -2 --pretty=oneline

# 在一行上展示最近两条提交的历史信息,并自定义输出的格式
# %h 提交的简写哈希值 %an作者名字 %ar作者修订日期,按多久以前的方式显示,%s提交说明
git log -2 --pretty=format:"%h | %an | %ar | %s"
20.回退到指定的版本
# 在一行上展示所有的提交历史
git log --pretty=oneline

# 使用git reset --hard命令,根据指定的提交ID回退到指定版本
git reset --hard<CommitID>

# 在旧版中使用 git reflog --pretty=oneline 命令,查看命令操作的历史
git reflog --pretty=oneline

# 再次根据最新的提交 ID,跳转到最新的版本
git reset --hard <CommitID>

关于开源

1.什么是开源

在这里插入图片描述

2.开源许可协议

开源并不意味着完全没有限制,为了限制使用者的使用范围和保护作者的权利,每个开源项目都应该遵守开源许可协议(Open Source Liscense)。

3. 常见的5种开源协议

在这里插入图片描述

4.为什么要开源

在这里插入图片描述

5.开源项目托管平台

专门用于免费存放开源项目源代码的网站,叫做开源项目托管平台。目前世界上比较出名的开源项目,托管平台主要由以下3个:

在这里插入图片描述

  • 注意:以上3个开源项目托管平台,只能托管以Git管理的项目源代码,因此,它们的名字都以Git开头。
6.什么是GitHub

GIthub是全球最大的开源项目托管平台。因为只支持Git作为唯一版本控制工具,故名Github。

在Github中,你可以:
在这里插入图片描述

Github

1.注册Github账号

在这里插入图片描述

2.新建Github远程仓库

在这里插入图片描述

创建成功的页面如下:

在这里插入图片描述

3.远程仓库的两种访问方式

Github上的远程仓库,有两种访问方式,分别是HTTPS和SSH。它们的区别是:

  • HTTPS :零配置;但是每次访问仓库时,需要重复输入Github的账号密码才能访问成功
  • ssh:需要进行额外的配置;但是配置成功后,每次访问仓库时,不需重复输入Github的账号和密码。

注意: 在实际开发中,推荐使用SSH的方式访问远程仓库。

4.基于HTTPS方式将本地仓库上传到Github

在这里插入图片描述

在这里插入图片描述

需要输入账号密码:

在这里插入图片描述

上传完成:

在这里插入图片描述

如何把本地仓库最新代码同步到Github仓库

git push

在这里插入图片描述

5.SSH Key

SSH key 的作用:实现本地仓库和Github之间免登录的加密数据传输。

SSH key 的好处:免登陆身份认证、数据加密传输。

SSH key 由两部分组成,分别是:

  • id_rsa (私钥文件,存放于客户端的电脑中即可)
  • id_rsa.pub(公钥文件,需要配置到Github中)
6. 生成SSH Key
  • 打开GIt Bash

  • 粘贴如下的命令,并将[email protected] 替换为注册Github账号时填写的邮箱:

    ssh-keygen -t rsa -b 4096 -C "[email protected]"
    
  • 连续敲击三次回车,即可在C:\Users\用户名文件夹.ssh目录中生成id_rsa 和 id_rsa.pub两个文件

在这里插入图片描述

在这里插入图片描述

7.配置SSH Key

在这里插入图片描述

在这里插入图片描述

8.检测Github的SSH Key是否配置成功

打开Git Bash,输入如下的命令并回车执行:

ssh -T [email protected]

上述命令执行成功后,可能会看到如下消息提示:

在这里插入图片描述

输入yes后,如果能看到下面的提示,证明SSH Key已经配置成功了:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AH3afaTz-1651835731235)(C:\Users\icy\AppData\Roaming\Typora\typora-user-images\image-20220506181751610.png)]

9. 基于SSH将本地仓库上传到Github

创建一个新的项目目录,project_02并且创建一些文件,再右键打开Git Bash

在这里插入图片描述

  • git init 初始化git仓库

在这里插入图片描述

  • git status -s 查看文件状态

在这里插入图片描述

  • git add . 将所有文件跟踪加入暂存区

  • git status -s 查看状态

  • git commit -m “初始化提交”

打开github创建新的空白仓库。

然后打开Git Bash 执行以下命令。

在这里插入图片描述

在这里插入图片描述

10.将远程仓库克隆到本地

打开Git Bash ,输入如下的命令并回车执行:

git clone 远程仓库的地址

在这里插入图片描述

选择不同方式进行克隆。

Git 分支

1.分支概念

在这里插入图片描述

2.分支在实际开发的作用

在这里插入图片描述

3. master主分支

在这里插入图片描述

4.功能分支

在这里插入图片描述

5.查看分支列表

在这里插入图片描述

6.创建新分支

在这里插入图片描述

7.切换分支

在这里插入图片描述

8.分支的快速创建和切换

在这里插入图片描述

在这里插入图片描述

9.合并分支

在这里插入图片描述

在这里插入图片描述

10. 删除分支

在这里插入图片描述在这里插入图片描述

11.遇到冲突时的分支合并

在这里插入图片描述

在这里插入图片描述

12.将本地分支推送到远程仓库

在这里插入图片描述

12.1 查看远程仓库所有分支列表

在这里插入图片描述

12.2 跟踪分支

在这里插入图片描述

12.3 拉取远程分支的最新代码

在这里插入图片描述

12.4 删除远程分支

..(img-gPBIpkCt-1651835731243)]

猜你喜欢

转载自blog.csdn.net/qq_43682422/article/details/124616784