跳到主要内容

04 Git存档和回退

图示(往右存档,往左回退):

存档操作

git add

git add 用户将工作区存档到暂存区,暂存区是一个临时存档的区域。

最常用法

将当前文件夹所有文件存档(最常用法):

git add .

其他用法

将指定文件存档:

git add <file>

交互选择更改片段(patch 模式):

git add -p 

git commit

将暂存区的临时存档保存到版本库,形成永久存档(快照)。

最常用法

简介提交:

git commit -m "提交信息"

其他用法

打开编辑器输入提交信息:

git commit

跳过 add,提交已跟踪文件(不包括新文件):

git commit -am "提交信息"

回退操作

git restore

git restore 的作用,用暂存区恢复工作区。

最常用法

恢复指定文件:

git restore <file>

其他用法

git restore --staged <file>			 # 撤销 git add(从暂存区移除)
git restore --source=<commit> <file> # 恢复为指定提交版本

git reset

git reset 命令:用版本库恢复工作区和暂存区。

回退选项:

回退选项工作区暂存区版本库
--soft不变不变HEAD 指向历史版本
--mixed(默认)不变清空HEAD 指向历史版本
--hard清空并用历史版本覆盖清空并用历史版本覆盖HEAD 指向历史版本

最常用法

使用 git log 命令列出历史版本,使用 git reset --hard <commit-id> 命令:移动版本库,将工作区和暂存区恢复到指定版本。

回到第二存档

其他用法:

版本库移动,暂存区和工作区保持不变:

git reset --soft <commit_id>

版本库移动,暂存区清空,工作区不变:

git reset --mixed <commit_id>
# 丢弃对某个文件的所有本地更改(谨慎使用)
git checkout -- <file>
# 示例: 将 main.py 恢复到最后一次提交的状态,丢弃所有未提交的修改
git checkout -- main.py


# 重置远程分支(强制同步,谨慎使用)
git reset --hard origin/main
git pull origin main --force
# 示例: 强制同步本地分支与远程分支,丢弃所有本地未推送的更改
git reset --hard origin/main
git pull origin main --force