Git各种回退
注意
这里面的命令大部分会丢失代码,所以请检查好以后在使用。使用前可以做好备份。
# 修改文件 add 前
# 抛弃工作区所有修改(modified)的文件(慎用,会丢失代码)
git checkout .
# 抛弃工作区指定修改(modified)的文件(慎用,会丢失代码)
git restore [file-name]
1
2
3
4
5
2
3
4
5
# 新增文件 add 前
# 删除单个文件(该命令可以删除任意文件,会丢失代码)
rm -rf [file-name]
# 删除新增的文件,如果文件已经 git add 到暂存区,并不会删除!(慎用,会丢失代码)
git clean -xdf
# 删除新增的文件和文件夹,如果文件已经 git add 到暂存区,并不会删除!(慎用,会丢失代码)
git clean -xdff
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 新增/修改 add 后
# 单个文件,回退到 add 前(不会丢失代码,下面两个命令任一都可以)
git restore --staged [file-name]
git reset HEAD [file-name]
# 所有文件,回退到 add 前(不会丢失代码,下面两个命令任一都可以)
git restore --staged .
git reset HEAD .
# 丢弃新增/修改(慎用)
git reset --hard
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# commit 后
参数介绍查看 reset 用法
# 回滚到指定 commit-id ,commit-id后的改动/新增会到 工作区(add 前,不会丢失代码)
git reset [commit-id]
# 回滚到指定 commit-id ,commit-id后的改动/新增会到 暂存区(commit 前 add 后,不会丢失代码)
git reset --soft [commit-id]
# 回滚到指定 commit-id,并删除commit-id后所有修改和未commit的修改(慎用,会丢失代码)
git reset --hard [commit-id]
# 回滚指定 commit-id,删除commit-id后所有修改 但是 保留未commit的修改(慎用,会丢失代码)
git reset --keep [commit-id]
# 提示:可以通过 git log 命令查看 commit-id。
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 本地当前分支与远程分支保持一致
# 会丢失本地分支与远程分支差异的部分。(慎用,使用前可以备份分支)
git reset --hard origin/<branch-name>
1
2
2
# 恢复删除的文件
# 如果确认要恢复的文件已经被删除,可以使用以下命令将其恢复到最新的提交状态
# 其中 <file_path> 是要恢复的文件路径。
git checkout -- <file_path>
1
2
3
2
3
上次更新: 2024/01/04, 10:46:38