【git:踩坑】请用git reset --soft HEAD^_是梦梦啊的博客-CSDN博客 https://blog.csdn.net/wuzhong8809/article/details/104779322?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-104779322-blog-128440831.pc_relevant_recovery_v2&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-104779322-blog-128440831.pc_relevant_recovery_v2&utm_relevant_index=1 git 合并两个提交 - git reset --soft HEAD^_Zonson9999的博客-CSDN博客 https://blog.csdn.net/wuzhong8809/article/details/104779322?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-104779322-blog-128440831.pc_relevant_recovery_v2&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-104779322-blog-128440831.pc_relevant_recovery_v2&utm_relevant_index=1

  • 使用 git reflog 找到需要退回的版本ID
git reflog
或者 git log --oneline
1
2
  • 使用 git reset --soft commitID 回退
# --soft 从版本库恢复文件到暂存区,不改动工作区的内容
# commitID
git reset --soft commitID	
1
2
3
  • 之后就是 add commit 两步走即可

  • 示意例子 (要多回退一个版本)

  • 使用 --soft 回退保留 暂存区和工作区的代码


# 我准备合并 01 和 02 俩次commit

PS C:\新建文件夹11\code\pro\GitWorkProcessTest> git log --oneline  
9d0aac2 (HEAD -> master) 02
2b732ef 01
5207cd4 1w1212
cd41862 (origin/master, origin/HEAD) Initial commit
c719729 (origin/main, main) first
55d6ebb Initial commit

# 若回退到 01 所指的版本`2b732ef`,依旧不可以,所以要多回退一个版本到 01 的上一个版本 `5207cd4`

PS C:\新建文件夹11\code\pro\GitWorkProcessTest> git reset --soft 2b732ef
PS C:\新建文件夹11\code\pro\GitWorkProcessTest> git log --oneline       
2b732ef (HEAD -> master) 01
5207cd4 1w1212
cd41862 (origin/master, origin/HEAD) Initial commit
c719729 (origin/main, main) first
55d6ebb Initial commit

# 多回退一个版本 到 

PS C:\新建文件夹11\code\pro\GitWorkProcessTest> git reset --soft 5207cd4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25