推荐阅读大佬的Git教程

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

在Git中,项目由三种状态:

  • modified 已修改
  • staged 已暂存
  • committed 已提交

如果工作区的文件被修改后还未添加进暂存区,则还是已修改状态

如果文件已修改还放入了暂存区,则属于已暂存状态

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

推荐VsCode扩展:GitLens 可以在vscode里操作git GitLens官网
Gitlens.png

1. 配置用户信息

  1. git config --global user.name "song"
  2. git config --global user.email "song@icloud.com"

注意:如果使用了 —global 选项,那么该命令只需要运行一次,即可永久生效。


2. Git的全局配置文件

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


3. 检查配置信息

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

4. 获取仓库

获取Git仓库的两种方式

  1. 将尚未进行版本控制的本地目录转换为 Git 仓库
  2. 从其它服务器克隆一个已存在的 Git 仓库

在现有目录中初始化仓库

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

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

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

检查文件状态

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

  1. git status

检查文件状态.png

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

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

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

未跟踪文件前面有红色的 ?? 标记,例如
精简方式显示文件状态.png


5. 文件跟踪

  1. git add index.html
  2. # 如果文件过多,你项跟踪目录下所有文件
  3. git add *.*

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


6. 提交更新

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

  1. git commit -m "更新说明"

7. 撤销文件修改

撤销对文件的修改指的是:把对工作区中对应文件的修改,还原成 Git 仓库中所保存的版本。
操作的结果:所有的修改会丢失,且无法恢复!危险性比较高,请慎重操作!

  1. git checkout -- index.html

8. 向暂存区添加多个文件

  1. git add .

9. 取消暂存文件

  1. git reset HEAD 要移出的文件名称

从暂存区移除对应的文件


10. 跳过暂存区直接存入仓库

  1. git commit -a -m "日志信息"
  • Git 标准的工作流程是工作区 → 暂存区 → Git 仓库,但有时候这么做略显繁琐,此时可以跳过暂存区,直接将工作区中的修改提交到 Git 仓库,这时候 Git 工作的流程简化为了工作区 → Git 仓库
  • Git 提供了一个跳过使用暂存区域的方式, 只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤

11. 移除文件

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

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

12. 忽略文件

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

  1. - `#`开头的是注释
  2. - `/`结尾的是目录
  3. - `/`开头的是防止递归
  4. - `!`开头的表示取反
  5. - 可以使用 **glob 模式**进行文件和文件夹的匹配(glob 指简化了的正则表达式)
  6. - **星号 *** 匹配**零个或多个任意字符**
  7. - **[abc]** 匹配**任何一个列在方括号中的字符** (此案例匹配一个 a 或匹配一个 b 或匹配一个 c
  8. - **问号 ?** 只匹配**一个任意字符**
  9. - **两个星号 **** 表示匹配**任意中间目录**(比如 a/**/z 可以匹配 a/z a/b/z a/b/c/z 等)
  10. - 在方括号中使用**短划线**分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 9 的数字)

13. 查看提交历史

  1. # 按时间先后顺序列出所有的提交历史,最近的提交在最上面
  2. git log
  3. # 只展示最新的两条提交历史,数字可以按需进行填写
  4. git log -2
  5. # 在一行上展示最近两条提交历史的信息
  6. git log -2 --pretty=oneline
  7. # 在一行上展示最近两条提交历史信息,并自定义输出的格式
  8. # &h 提交的简写哈希值 %an 作者名字 %ar 作者修订日志 %s 提交说明
  9. git log -2 --pretty=format:"%h | %an | %ar | %s"

14. 回退到指定版本

  1. # 在一行上展示所有的提交历史
  2. git log --pretty=oneline
  3. # 使用 git reset --hard 命令,根据指定的提交 ID 回退到指定版本
  4. git reset --hard <CommitID>
  5. # 在旧版本中使用 git reflog --pretty=oneline 命令,查看命令操作的历史
  6. git reflog --pretty=onelone
  7. # 再次根据最新的提交 ID,跳转到最新的版本
  8. git reset --hard <CommitID>

15. 远程仓库管理

1.基于SSH key

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

注意 SSH的地址一般在C盘用户文件夹里
SSH存放位置.png

2. 生成SSH key

  1. 打开 Git Bash
  2. 粘贴如下的命令,并将 your_email@example.com 替换为注册 Github 账号时填写的邮箱:
  • ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  1. 连续敲击 3 次回车,即可在 C:\Users\用户名文件夹\.ssh 目录中生成 id_rsaid_rsa.pub 两个文件

3. 配置SSH key

  1. 使用记事本打开 id_rsa.pub 文件,复制里面的文本内容
  2. 在浏览器中登录 Github,点击头像 -> Settings -> SSH and GPG Keys -> New SSH key
  3. 将 id_rsa.pub 文件中的内容,粘贴到 Key 对应的文本框中
  4. 在 Title 文本框中任意填写一个名称,来标识这个 Key 从何而来

4. 检测 Github 的 SSH key 是否配置成功

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

  1. ssh -T git@gitee.com //码云的地址

如果提示输入 yes/no 输入yes后显示
ssh配置检查01.png
则表示成功添加


16. 基于SSH将本地仓库上传到gitee

在码云创建仓库时就会提醒如何上传本地仓库
设置gitee.png
添加远程仓库.png
注意:git push origin master 也能进行提交,git push origin -u 的话可以提交代码,并且把origin 当作默认的主机,后续直接 git push 就可以提交到origin对应的主机

在码云上将得到的公钥添加(设置里面)
设置码云的SSH公钥.png
在码云内添加公钥.png