1.核心命令
字数: 0 字 时长: 0 分钟
2. 初始化仓库
git init创建一个文件夹、也可以在黑窗口用 linux 命令 mkdir 创建


用 ls -la 可以看到隐藏的.git 目录

创建成功。
2. 核心命令
先上一张图

| 状态 / 区域 | 官话解析 | 人话解析 |
|---|---|---|
未跟踪 Untracked | 新文件尚未被 Git 跟踪 | Git:这文件我还不认识 |
未暂存 Unstaged | 已跟踪文件被修改,但未加入暂存区 | Git:我认识它,但你这次修改还没选中 |
已暂存 Staged | 修改已通过 git add 加入暂存区 | 已经放进“待提交清单” |
本地仓库 Repository | 保存提交历史和版本数据 | git commit 后正式存档 |
.git 目录 | 保存 Git 仓库核心数据 | Git 的“大脑 / 数据库” |
| 状态流转: |
Untracked / Unstaged
↓ git add
Staged
↓ git commit
本地仓库3. 查看状态
git status
git status --short
查看当前 Git 仓库状态。
· On branch master:当前位于 master 分支
· No commits yet:仓库还没有提交记录
· nothing to commit:当前没有文件需要提交
--short
简洁查看仓库状态;没有输出表示工作区干净,没有文件变更。
4. 新建文件
下面用 linux 命令创建一个文件

然后再查看 status

就能看到 Untracked files ...
对应前面的未跟踪
5. 添加到暂存区
把"未跟踪" “未暂存”的文件提交到暂存区。
git add <file>
git add .你也可以用文件名,但是如果修改或者新建的文件太多可以用 git add . 也就是通配符

这样就进入暂存区了。
6. 提交
从暂存区提交到本地仓库。
git commit -m "message"
我写的是第一次提交,提交后再次查看状态,就非常干净了。
7. 查看历史
查看这个仓库的提交历史。
git log
git log --oneline --graph --decorate
就能看到提交日志了、是谁提交的。
git log --oneline --graph --decorate 解析
| 参数 | 作用 | 人话 |
|---|---|---|
git log | 查看提交历史 | 看以前提交过什么 |
--oneline | 每个提交只显示一行 | 别整一大坨,简洁点 |
--graph | 用字符画显示分支关系 | 看分支怎么分叉、合并 |
--decorate | 显示分支、标签等引用 | 看这个提交属于哪个分支 / Tag |
--all | 显示所有分支 | 看这个项目有多少个分支 |
| 结果如下 |

然后继续编辑一下文件,当然也可以新增

然后 git add . 再次提交。

git log 就能看到两次提交了.

8.查看差异
git diff
git diff --staged| 命令 | 作用 | 人话 |
|---|---|---|
git diff | 查看工作区和暂存区之间的差异 | 看“改了但还没 git add”的内容 |
git diff --staged | 查看暂存区和最近一次提交之间的差异 | 看“已经 git add,准备提交”的内容 |
工作区 --git add--> 暂存区 --git commit--> 本地仓库 ↑ ↑ git diff git diff --staged
一句话记:
· git diff:看未暂存修改
· git diff --staged:看已暂存修改
9.撤销修改
git restore <file>
git restore --staged <file>| 命令 | 作用 | 人话 |
|---|---|---|
git restore <file> | 丢弃工作区中该文件的修改 | 我改乱了,不要了,恢复成之前的样子 |
git restore --staged <file> | 把文件从暂存区移回工作区 | 我刚 git add 了,但暂时不想提交 |
工作区 --git add--> 暂存区 --git commit--> 本地仓库
↑ ↓
restore restore --staged10.版本回退
git reset --soft HEAD~1
git reset --mixed HEAD~1
git reflog
git reset --hard HEAD~1| 命令 | 作用 | 人话 |
|---|---|---|
git reset --soft HEAD~1 | 撤销最近一次提交,但保留到暂存区 | commit 撤了,git add 还在 |
git reset --mixed HEAD~1 | 撤销最近一次提交,并取消暂存 | commit 和 git add 都撤了,代码修改还在 |
git reset --hard HEAD~1 | 撤销最近一次提交,并丢弃代码修改 | commit、暂存、代码修改全不要了 |
git reflog | 查看 HEAD 的移动记录 | 查自己之前切过、reset 过、提交过的位置,常用于“后悔药” |
先查看 git log

回退到 first commit 第一次提交的样子

查看 git log

如果想又想变回 second commit
使用 git reflog 查看总体改动日志

可以看到回退过一次

再次查看 git log

可以看到回来了
再次查看 git reflog

可以看到又移动一次
11. revert
git revert <commit>| 命令 | 作用 | 人话 |
|---|---|---|
git revert <commit> | 创建一个新的提交,用来反向撤销指定提交的修改 | 不改历史,而是再提交一次“把之前那次改动抵消掉” |
会生成一个新的提交,把 a12bc34 那次提交造成的修改反过来。 |
和 git reset 最大区别:
· reset:会移动历史,适合本地还没推送的提交
· revert:不改历史,适合已经推送到远程、大家都在用的提交
一句话记:
revert= 保留历史,用新提交撤销旧提交。
12.临时保存
git stash
git stash pop| 命令 | 作用 | 人话 |
|---|---|---|
git stash | 临时保存当前未提交的修改,并恢复干净工作区 | 代码先藏起来,我去干别的 |
git stash pop | 恢复最近一次暂存的修改,并从 stash 列表中删除 | 把刚才藏起来的代码拿回来 |
简单理解:
正在改代码
↓
git stash
临时藏起来
↓
切分支 / 处理其他事情
↓
git stash pop
恢复修改一句话记:
stash= 临时存放修改,stash pop= 恢复并删除这份临时存档。
13. 标签
git tag
git tag v1.0.0| 命令 | 作用 | 人话 |
|---|---|---|
git tag | 查看当前仓库所有标签 | 看项目有哪些版本标签 |
git tag v1.0.0 | 给当前提交创建一个名为 v1.0.0 的标签 | 给当前版本打个“1.0.0”标记 |
| 例如: |
表示给当前 HEAD 所在提交打上:
v1.0.0一句话记:
tag= 给某个重要提交起一个固定版本名,常用于发布版本,例如v1.0.0、v2.1.0。