特点:基于服务器、客户端的运行模式 ① 服务器保存文件的所有更新版本 ② 客户端是服务器的完整备份,并不是只保留文件的最新版本 优点: ① 联网运行,支持多人协作开发 ② 客户端断网后支持离线本地提交版本更新 ③ 服务器故障或损坏后,可使用任何一个客户端的备份进行恢复

Git 中的三个区域

image.png

Git 中的五种状态

  1. 未跟踪(Untracked):不被git管理的文件
  2. 未修改(Unmodified):工作区中文件的内容和 Git 仓库中文件的内容保持一致
  3. 已修改(modified):工作区中文件的内容和 Git 仓库中文件的内容不一致
  4. 已暂存(staged):工作区中被修改的文件已被放到暂存区,准备将修改后的文件保存到 Git 仓库中
  5. 已提交(commited):表示文件已经安全地保存在本地的 Git 仓库中

循环:2->3->4->5->2->3…

Git 本地使用

1. 全局配置用户信息

  1. //安装完 Git 之后,要做的第一件事就是设置自己的用户名和邮件地址。
  2. //因为通过 Git 对项目进行版本管理的时候,Git 需要使用这些基本信息,来记录是谁对项目进行了操作:
  3. git config --global user.name "..."
  4. git config --global user.email "...@qq.com"

2. 查看Git的全局配置文件

通过 git config —global user.namegit config —global user.email 配置的用户名和邮箱地址,会被写入到 C:/Users/用户名文件夹/.gitconfig 文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效。
可以使用记事本打开此文件,从而查看自己曾经对 Git 做了哪些全局性的配置。
image.png

3. 命令查看全局配置信息

可用于查看全局配置是否生效

  1. # 查看所有的全局配置项
  2. git config --list --global
  3. # 查看指定的全局配置项
  4. git config user.name
  5. git config user.email

image.png

4. 创建仓库

如果自己有一个尚未进行版本控制的项目目录,想要用 Git 来控制它,需要执行如下两个步骤: ① 在项目目录中,通过鼠标右键打开“Git Bash” ② 执行 git init 命令将当前的目录转化为 Git 仓库 git init 命令会创建一个名为 .git 的隐藏目录,这个 .git 目录就是当前项目的 Git 仓库,里面包含了初始的必要 文件,这些文件是 Git 仓库的必要组成部分。

  1. # 新建/初始化 本地仓库
  2. git init
  3. # 从远程服务器克隆仓库
  4. git clone https://gitee.com/ccu041540223/htmlcss.git

5. 检查文件状态

可以使用 git status 命令查看当前文件夹下的文件处于什么状态
未被跟踪文件:??
跟踪后的新文件:A

  1. // 详细查看文件状态
  2. git status
  3. // 精简方式查看文件状态
  4. git status -s

image.png
在状态报告中可以看到新建的 index.html 文件出现在 Untracked files(未跟踪的文件) 下面。
未跟踪的文件意味着 Git 在之前的快照(提交)中没有这些文件;Git 不会自动将之纳入跟踪范围,除非明确地告诉它“我需要使用 Git 跟踪管理该文件”。
image.png

6. 跟踪新文件/添加到暂存区 - git add - A

  1. # 使用命令 git add 开始跟踪一个文件。
  2. git add index.html
  3. # 向暂存区中一次性添加多个文件
  4. git add .
  5. # 从暂存区中删除文件
  6. git rm --chached xxx

image.png
image.png

7. 提交到本地仓库 git commit

现在暂存区中有一个 index.html 文件等待被提交到 Git 仓库中进行保存。可以执行 git commit 命令进行提交, 其中 -m 选项后面是本次的提交消息,用来对提交的内容做进一步的描述:
commit后,git status 就看不到对应的文件了(因为staged文件全部变为unmodified)

  1. # 将暂存区中的文件提交到本地git仓库
  2. git commit -m "新建了index.html"文件
  3. # 跳过使用暂存区域直接提交
  4. git commit -a -m "提交index.html文件"

image.png
image.png

8. 修改被跟踪的文件 - M

image.png

9. 暂存已修改的文件 - git add - M

image.png

10. 提交已暂存且已修改的文件

image.png

11. 撤销对文件的修改(回滚到本地Git仓库中最新版本)

注:如果撤销对文件的修改,会导致本地的修改全部消失,谨慎操作!!

  1. # 撤销对index.html文件的修改
  2. git checkout -- index.html

image.png

12. 取消暂存的文件

  1. # 如果需要从暂存区中移除对应的文件,可以使用如下的命令:
  2. git reset HEAD 要移除的文件名称

13. 移除本地Git仓库中的文件

  1. # 从 Git 仓库中移除文件的方式有两种:
  2. # ① 从 Git 仓库和工作区中同时移除对应的文件
  3. git rm -f index.js
  4. # ② 只从 Git 仓库中移除指定的文件,但保留工作区中对应的文件
  5. git rm --cached index.css

14. 忽略文件.gitignore

文件 .gitignore 的格式规范如下: ① 以 # 开头的是注释 ② 以 / 结尾的是目录 ③ 以 / 开头防止递归 ④ 以 ! 开头表示取反 ⑤ 可以使用 glob 模式进行文件和文件夹的匹配(glob 指简化了的正则表达式)

image.png
image.png

15. 查看提交历史

image.png

16. 回退到指定版本

注:如果回退到指定版本,则该版本往后的记录(git log)都会消失,谨慎操作!!
image.png

17. 查看历史版本提交信息

  1. git reflog

Git 远程仓库Github/Gitee

1. 基于HTTPS将本地仓库上传到Gitee

Step1: 将本地仓库和远程仓库关联,并把远程仓库命名为origin

  1. # 在本地仓库目录下执行下面命令
  2. # git remote add 远程仓库名 远程仓库地址
  3. git remote add origin https://gitee.com/ccu041540223/htmlcss.git

Step2:将本地仓库中的内容推送到远程的origin仓库中

  1. # git push -u 远程服务器名称 分支名称
  2. git push -u origin master/dev/test

2. 基于SSH将本地仓库上传到Gitee

SSH key 的作用:实现本地仓库和 Github/Gitee 之间免登录的加密数据传输。
SSH key 的好处:免登录身份认证、数据加密传输。
SSH key 由两部分组成,分别是:
① id_rsa(私钥文件,存放于客户端的电脑中即可)
② id_rsa.pub(公钥文件,需要配置到 Github/Gitee 中)

Step1:生成SSH key
① 打开 Git Bash
② 粘贴如下的命令,并将 your_email@example.com 替换为注册 Github/Gitee 账号时填写的邮箱:

  1. ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

③ 连续敲击 3 次回车,即可在 C:\Users\用户名文件夹.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件

Step2:配置SSH key
① 将 id_rsa.pub 文件中的内容配置到Gitee对应的仓库中
② 启用公钥
image.png
image.png
image.png
Step3:如果是Github,检测SSH公钥是否配置成功
image.png
Step4: 将本地仓库和远程仓库关联,并把远程仓库命名为origin

  1. # 在本地仓库目录下执行下面命令
  2. # git remote add 远程仓库名 远程仓库地址
  3. git remote add origin https://gitee.com/ccu041540223/htmlcss.git

Step5:将本地仓库中的内容推送到远程的origin仓库中

  1. # git push -u 远程服务器名称 分支名称
  2. git push -u origin master/dev/test

3. 克隆远程仓库

  1. # 打开Git bash,输入如下的命令并执行回车
  2. git clone 远程仓库的地址

Git 分支

image.png

1. 分支开发在实际工作中的应用

image.png

2. master 主分支

image.png

3. dev功能分支image.png

4. 查看分支列表

image.png

5. 创建新分支

image.png

6. 切换分支

image.png

7. 快速创建并切换分支

image.png

8. 合并分支

注:要合并到哪个分支,就要先切换到那个分支上!!
image.png

9. 删除分支

注:要删除功能分支时,不能位于该分支上!!
image.png

10. 分支合并解决冲突

注:解决冲突后,需要将最新的文件通过add和commit提交到合并后的分支上!!
image.png

11. 远程分支操作

注:第一次将本地分支推送到远程仓库分支,需要进行分支关联!!
image.png

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

  1. git remote show 远程仓库名称,如origin

13. 下拉远程仓库分支

image.png

14. 下拉远程仓库最新代码

image.png

15. 删除远程分支

image.png