目录
- 1.创建仓库
-
- [1.1 在自己本地创建一个仓库(git init)](#1.1 在自己本地创建一个仓库(git init))
- [1.2 从网上克隆一个仓库(git clone)](#1.2 从网上克隆一个仓库(git clone))
- [2. 工作区域和文件状态](#2. 工作区域和文件状态)
-
- [2.1 工作区域:工作区、暂存区、本地仓库](#2.1 工作区域:工作区、暂存区、本地仓库)
- [2.2 文件状态:未跟踪、未修改、已修改、已暂存](#2.2 文件状态:未跟踪、未修改、已修改、已暂存)
- [3. 添加和提交文件](#3. 添加和提交文件)
-
- [3.1 查看状态(git status)](#3.1 查看状态(git status))
- [3.2 添加到暂存区(git add)](#3.2 添加到暂存区(git add))
- [3.3 提交到仓库(git commit -m message)](#3.3 提交到仓库(git commit -m message))
- [3.4 查看历史提交记录(git log 或 git log --oneline)](#3.4 查看历史提交记录(git log 或 git log --oneline))
- [4. 回退到之前的某一版本(git reset --soft/hard/mixed)](#4. 回退到之前的某一版本(git reset --soft/hard/mixed))
-
- [4.1 工作区和暂存区的内容都保留(git reset --soft ID)](#4.1 工作区和暂存区的内容都保留(git reset --soft ID))
- [4.2 工作区和暂存区的内容都不保留(git reset --hard ID)](#4.2 工作区和暂存区的内容都不保留(git reset --hard ID))
- [4.3 只保留工作区(我本地文件夹)中的内容(git reset --mixed ID)](#4.3 只保留工作区(我本地文件夹)中的内容(git reset --mixed ID))
- [5. 查看在不同版本之间的差异(git diff)](#5. 查看在不同版本之间的差异(git diff))
-
- [5.1 工作区 VS. 暂存区(git diff)](#5.1 工作区 VS. 暂存区(git diff))
- [5.2 工作区 VS. 版本库(git diff HEAD)](#5.2 工作区 VS. 版本库(git diff HEAD))
- [5.3 暂存区 VS. 版本库(git diff --cached)](#5.3 暂存区 VS. 版本库(git diff --cached))
- [5.4 版本1 VS. 版本2(git diff 版本1ID 版本2ID)](#5.4 版本1 VS. 版本2(git diff 版本1ID 版本2ID))
- [5.5 上一个版本 VS. 当前版本(git diff HEAD~ HEAD)](#5.5 上一个版本 VS. 当前版本(git diff HEAD~ HEAD))
- [5.6 查看某个文件的差异内容(在上述命令最后加上文件名)](#5.6 查看某个文件的差异内容(在上述命令最后加上文件名))
- [6. 删除文件](#6. 删除文件)
-
- [6.1 方式一:先在工作区删除文件,然后提交到暂存区(git add)------比较麻烦](#6.1 方式一:先在工作区删除文件,然后提交到暂存区(git add)——比较麻烦)
- [6.2 同时删除工作区和暂存区的文件(git rm 文件名)------比较方便](#6.2 同时删除工作区和暂存区的文件(git rm 文件名)——比较方便)
- [7. 忽略文件(.gitignore)](#7. 忽略文件(.gitignore))
- [8. 本地仓库与远程仓库(pull与push)](#8. 本地仓库与远程仓库(pull与push))
- [9. 在vscode中的使用](#9. 在vscode中的使用)
- [10. 分支的基本操作](#10. 分支的基本操作)
-
- [10.1 分支的查看(git branch)、创建(git branch 分支名)、切换(git switch 分支名)](#10.1 分支的查看(git branch)、创建(git branch 分支名)、切换(git switch 分支名))
- [10.2 分支的合并(git merge 分支名)](#10.2 分支的合并(git merge 分支名))
- [10.3 删除已合并的(git branch -d 分支名)、删除未合并的(git branch -D 分支名)](#10.3 删除已合并的(git branch -d 分支名)、删除未合并的(git branch -D 分支名))
- [11. 解决合并冲突](#11. 解决合并冲突)
- [12. 回退和变基(git rebase 要变到的基的名称)](#12. 回退和变基(git rebase 要变到的基的名称))
- git命令速查表
- 参考教程
仓库就是一个目录(文件夹),这个目录里面的所有文件都可以被git管理起来,
1.创建仓库
1.1 在自己本地创建一个仓库(git init)



1.2 从网上克隆一个仓库(git clone)

2. 工作区域和文件状态
2.1 工作区域:工作区、暂存区、本地仓库
共三种工作区域

2.2 文件状态:未跟踪、未修改、已修改、已暂存
共四种文件状态

3. 添加和提交文件

3.1 查看状态(git status)
git status可以查看当前仓库(问价)处在哪个分支,有哪些文件,以及这些文件当前处在哪个状态。


3.2 添加到暂存区(git add)

3.3 提交到仓库(git commit -m message)
message是一个参数,自己随便填就行。

注意:git commit只会提交暂存区中的文件,不会提交工作区中的文件。

3.4 查看历史提交记录(git log 或 git log --oneline)

4. 回退到之前的某一版本(git reset --soft/hard/mixed)

先创建并依次提交3个文件:

我们先把repo仓库(文件夹)复制三份,分别命名为repo-soft、repo-hard、repo-mixed,之后会分别执行那三个操作,方便对比观察效果。

4.1 工作区和暂存区的内容都保留(git reset --soft ID)

4.2 工作区和暂存区的内容都不保留(git reset --hard ID)

4.3 只保留工作区(我本地文件夹)中的内容(git reset --mixed ID)

- soft和mixed的作用基本相似(区别在于是否保留暂存区中的内容)
当我们连续提交了很多个版本,但是感觉这些提交没太大意义,就可以使用这两个参数来回退,修改之后再重新提交
区别在于:使用mixed重新提交之前,需要先将变动的内容git add到暂存区;而soft就不用再进行git add操作了。- 只有要放弃本地所有修改的内容时,才会使用hard。(
注意:此时我本地的文件也没了谨慎使用 )
如果误操作的话,可以使用git reflog来查看我们操作的历史记录,然后使用git reset --hard ID,回退到那个版本就行了
5. 查看在不同版本之间的差异(git diff)

5.1 工作区 VS. 暂存区(git diff)
git diff 后面如果什么都不加,则默认比较的是"工作区"和"暂存区"之间的差异。
会显示更改的文件以及更改的详细信息。

5.2 工作区 VS. 版本库(git diff HEAD)

5.3 暂存区 VS. 版本库(git diff --cached)

5.4 版本1 VS. 版本2(git diff 版本1ID 版本2ID)

当前版本的提交ID也可以用HEAD来表示
5.5 上一个版本 VS. 当前版本(git diff HEAD~ HEAD)
当前版本的提交ID可以用 HEAD 来表示
当前版本的上一个版本提交ID可以用 HEAD~ 或 HEAD^ 来表示
HEAD~2 表示当前版本的上两个版本的提交ID

5.6 查看某个文件的差异内容(在上述命令最后加上文件名)

6. 删除文件

6.1 方式一:先在工作区删除文件,然后提交到暂存区(git add)------比较麻烦

6.2 同时删除工作区和暂存区的文件(git rm 文件名)------比较方便
只删除暂存区中的文件,而不删除工作区(本地)中的文件(git rm --cache 文件名)

7. 忽略文件(.gitignore)



https://github.com/github/gitignore 这里有各种语言的忽略文件,可以参考。
8. 本地仓库与远程仓库(pull与push)



9. 在vscode中的使用
在vscode中的使用可以参考:HDAlex_John-B站

提交------>提交到本地仓库中
同步更改------>更改到远程仓库中
10. 分支的基本操作
当需要多人协作的时候,可能会涉及到分支。每个人在自己分支上工作,之后再统一合并。

10.1 分支的查看(git branch)、创建(git branch 分支名)、切换(git switch 分支名)

10.2 分支的合并(git merge 分支名)

10.3 删除已合并的(git branch -d 分支名)、删除未合并的(git branch -D 分支名)

11. 解决合并冲突
当两个分支修改了同一个文件的同一行代码,再合并时,就会发生冲突。此时需要我们手动修改冲突。




12. 回退和变基(git rebase 要变到的基的名称)



git命令速查表

参考教程
GeekHour-B站
HDAlex_John-B站
【2025版】最新GitHub新手用法详解(适合新手入门)零基础学习必备-CSDN