git reset
将版本库和工作目录改变为已知状态(已知分支或者提交)。
下面列出不同参数对三区的影响。没有参数的时候,默认为--mixed
。
命令 | HEAD | 暂存区 | 工作目录 |
---|---|---|---|
git reset --soft [commitId] | 是 | 否 | 否 |
git reset --mixed [commitId] (默认) | 是 | 是 | 否 |
git reset --hard [commitId] | 是 | 是 | 是 |
# 取消暂存区的修改,其他的操作类似
git reset --mixed <本地或远程分支|commitID> -- <文件path>
重置本地分支
git reset --hard commitId或者分支名(本地和远程均可)
# 使用远程master分支重置当前分支
git reset --hard origin/master
# 使用本地feature-bug分支重置当前分支
git reset --hard feature-bug
# 使用 commitId 为 1c226bd4 重置当前分支
git reset --hard 1c226bd4