建站提交历史文章,原文写作时间 2023 年 1 月 11 日前后。

Get Start

开始之前创建一个文件夹,这里以 user/jamhus_tao/test 为例。

1
2
3
4
5
cd user/jamhus_tao/test     # 切换至仓库目录: test, 请为每个仓库创建一个单独的文件夹
git init # 初始化仓库 (.git)
git status # 查看差异状态,为确保工作安全,请牢记
git add readme.md # 向暂存区推入 readme.txt
git commit -m "This is my first commit" # 向版本库推入暂存区, -m 添加注释, 强制添加注释

后文会大量提到分支的概念,这个在另一篇文章中提到,默认分支为 master

比较

1
2
3
4
5
6
7
8
git status                    # 查找工作区对版本库的文件层差异
git status {file} # 查找工作区某文件对版本库的文件层差异
git diff # 查找工作区对版本库的内容层差异, 新增文件不会显示
git diff {file} # 查找工作区某文件对版本库的内容层差异
git show # 显示当前提交的变化
git show {id} # 显示 id 所在提交的变化
git show {branch} # 显示分支所在提交的变化
cat {file} # 打印某文件文本信息, 仅 bash

更新

1
2
3
4
5
6
git add {file}                # 向暂存区推入文件
git add {file1} {file2} ... # 向暂存区推入多个文件
git add -A # 向暂存区推入全部文件, 包括新文件
git commit -m "This is my first commit" # 向版本库推入暂存区, -m 添加注释, 强制添加注释
git commit -a -m "The second commit" # 将全部更改推入; 新文件不会添加
git rm --cached {file1} # 停止跟踪某文件, 并不从工作区删除

查看记录

1
2
3
4
5
git log                             # 查看当前分支的历史版本 (每次 commit 即为一个版本)
git log --pretty=oneline # 查看当前分支的历史版本, 每个版本显示一行简略信息
git log --pretty=oneline --graph # 查看当前分支的历史版本, 单行显示, 且使用图形直观显示分支分离与合并细节
git log {branch} # 查看指定分支的历史版本
git log --pretty=oneline --graph {branch1} {branch2} ... # 同时查看多个分支的图形进一步直观
1
2
git reflog                # 查看当前分支的操作历史
git reflog <branch> # 查看当前分支的操作历史

版本滚动

1
2
3
4
5
git checkout -- {file}         # 撤销文件工作区修改
git reset --hard HEAD # 工作区回滚到当前版本
git reset --hard HEAD^ # 回滚一个版本, 仅 bash
git reset --hard {id} # 滚动到版本号 (如果 log 中找不到版本, reflog 可以看到所有版本)
git reset --hard {branch} # 滚动到分支 (branch 可以看到所有分支)