Git复习-(Git基础概念,Git的基本操作,Git 分支)

Git基础概念 

什么是Git

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

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

Git中的三个区域

使用 Git 管理的项目,拥有三个区域,分别是工作区暂存区Git 仓库

工作区:处理工作的区域.

暂存区:已完成的工作的临时存放区域,等待被提交.

Git仓库:最终的存放区域.

Git中的文件三种状态

已修改(modified):表示修改了文件,但还没将修改的结果放到暂存区.

已暂存(staged):表示对已修改文件的当前版本做了标记,使之包含在下次提交的列表中.

已提交(committed):表示文件已经安全地保存在本地的 Git 仓库中.

注意:

工作区的文件被修改了,但还没有放到暂存区,就是已修改状态。

如果文件已修改并放入暂存区,就属于已暂存状态。

如果 Git 仓库中保存着特定版本的文件,就属于已提交状态。

基本的Git工作流程

①在工作区中修改文件

②将你想要下次提交的更改进行暂存

③提交更新,找到暂存区的文件,将快照永久性存储到 Git 仓库

Git复习-(Git基础概念,Git的基本操作,Git 分支)_第1张图片

Git的基本操作

获取Git仓库的两种方式

①将尚未进行版本控制的本地目录转换为 Git 仓库

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

在现有目录中初始化仓库

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

①在项目目录中,通过鼠标右键打开“Git Bash”

②执行 git init命令将当前的目录转化为 Git 仓库

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

工作区中文件的4种状态

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

Git 操作的终极结果:让工作区中的文件都处于“未修改”的状态。

Git复习-(Git基础概念,Git的基本操作,Git 分支)_第2张图片

检查文件的状态

可以使用 git status命令查看文件处于什么状态.

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

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

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

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

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

未跟踪文件前面有红色??标记

跟踪新文件

使用命令 git add 开始跟踪一个文件。 所以,要跟踪 index.html 文件

git add index.html

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

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

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

提交更新

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

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

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

Git复习-(Git基础概念,Git的基本操作,Git 分支)_第3张图片

向暂存区中一次性添加多个文件 git add .

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

git add .

忽略文件

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

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

①以 # 开头的是注释

②以 / 结尾的是目录

③以 / 开头防止递归

④以! 开头表示取反

⑤可以使用 glob 模式进行文件和文件夹的匹配(glob 指简化了的正则表达式)

glob 模式

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

星号 *匹配零个或多个任意字符

[abc]匹配任何一个列在方括号中的字符 (此案例匹配一个 a 或匹配一个 b 或匹配一个 c)

问号 ?匹配一个任意字符

④ 在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)

两个星号 *表示匹配任意中间目录(比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等)

Git复习-(Git基础概念,Git的基本操作,Git 分支)_第4张图片

Git的基本操作:

1.初始化 Git 仓库的命令

git init

2.查看文件状态的命令

git statusgit status -s

3.一次性将文件加入暂存区的命令

git add .

4.将暂存区的文件提交到 Git 仓库的命令

git commit -m "提交消息"

5.查看提交日历

git log/reflog -n --oneline

6.切换版本

git reset --hard ID

Git 分支

本地分支操作

分支的概念

分支在实际开发中的作用

在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发

Git复习-(Git基础概念,Git的基本操作,Git 分支)_第5张图片

master主分支

在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。通常我们把这个master 分支叫做主分支

Git复习-(Git基础概念,Git的基本操作,Git 分支)_第6张图片

在实际工作中,master 主分支的作用是:用来保存和记录整个项目已完成的功能代码

功能分支

由于程序员不能直接在 master 分支上进行功能的开发,所以就有了功能分支的概念。

功能分支指的是专门用来开发新功能的分支,它是临时从 master 主分支上分叉出来的,当新功能开发且测试完毕后,最终需要合并到 master 主分支上

Git复习-(Git基础概念,Git的基本操作,Git 分支)_第7张图片

查看分支列表

使用如下的命令,可以查看当前 Git 仓库中所有的分支列表

git branch

注意:分支名字前面的*号表示当前所处的分支

创建新分支 git branch 分支名称

使用如下的命令,可以基于当前分支创建一个新的分支,此时,新分支中的代码和当前分支完全一样

git branch 分支名称

Git复习-(Git基础概念,Git的基本操作,Git 分支)_第8张图片

切换分支

使用如下的命令,可以切换到指定的分支上进行开发

git checkout login

Git复习-(Git基础概念,Git的基本操作,Git 分支)_第9张图片

分支的快速创建和切换

使用如下的命令,可以创建指定名称的新分支,并立即切换到新分支

# -b 表示创建一个新分支
# checkout 表示切换到刚才新建的分支上
git checkout -b 分支名称

Git复习-(Git基础概念,Git的基本操作,Git 分支)_第10张图片

注意:

"git checkout -b 分支名称" 是下面两条命令的简写形式:

① git branch 分支名称

② git checkout 分支名称

合并分支

功能分支的代码开发测试完毕之后,可以使用如下的命令,将完成后的代码合并到 master 主分支上

# 1. 切换到 master 分支
git checkout master
# 2. 在 master 分支上运行 git merge 命令,将 login 分支的代码合并到master分支
git merge login

Git复习-(Git基础概念,Git的基本操作,Git 分支)_第11张图片

合并分支时的注意点:

假设要把 C 分支的代码合并到 A 分支,则必须先切换到A分支上,再运行git merge命令,来合并 C 分支!

删除本地分支

当把功能分支的代码合并到 master 主分支上以后,就可以使用如下的命令,删除对应的功能分支

git branch -d 分支名称

Git复习-(Git基础概念,Git的基本操作,Git 分支)_第12张图片

遇到冲突时的分支合并

如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法干净的合并它们。 此时,我们需要打开这些包含冲突的文件然后手动解决冲突

# 假设:在把reg分支合并到master分支期间,代码发生了冲突
git checkout master
git merge reg
​
# 打开包含冲突的文件,手动解决冲突之后,再执行如下的命令
git add .
git commit -m "解决了分支合并冲突的问题"

远程分支操作

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

如果是第一次将本地分支推送到远程仓库

# -u 表示把本地分支和远程分支进行关联,只在第一次推送的时候需要带 -u 参数
git push -u 远程仓库的别名 本地分支名称:远程分支名称
​
# 实际案例
git push - u origin payment:pay
​
# 如果希望远程分支的名称和本地分支名称保持一致,可以对命令进行简化
git push -u origin payment

注意:第一次推送分支需要带 -u 参数,此后可以直接使用git push 推送代码到远程分支。

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

通过如下的命令,可以查看远程仓库中,所有的分支列表的信息

git remote show 远程仓库名称

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

可以使用如下的命令,把远程分支最新的代码下载到本地对应的分支中

# 从远程仓库,拉取当前分支最新代码,保持当前分支的代码和远程分支代码一致
git pull

你可能感兴趣的:(Git,git,前端)