Git常用操作
还原至master
--mixed和--hard
git reset
右面可选{--mixed, --hard
}, 两者有本质的区别. --mixed
是默认的
操作 | git reset --hard origin/master | git reset --mixed origin/master |
---|---|---|
HEAD | 重置为 origin/master 指向的提交 | 重置为 origin/master 指向的提交 |
暂存区(staging area) | 重置为远程 origin/master 的状态,丢弃所有已暂存的更改 | 重置为远程 origin/master 的状态,丢弃所有已暂存的更改 |
工作目录(working directory) | 恢复为远程 origin/master 的状态,丢弃所有未提交的更改 | 保留本地修改,但将其恢复为“未暂存”状态,不会丢失工作目录中的更改 |
两者的相同点:
- 都是为了把未推送到远程的代码状态还原到和远程状态
- 执行好,新增的文件,会回退到未暂存的状态,不会被删除.
- 删除的话需要执行
git clean -fd
,谨慎操作.执行后,本地未推送到远程的代码将会彻底丢失-f
表示强制删除-d
表示删除未跟踪的目录
- 删除的话需要执行
两者的本质区别:
--mixed
是默认的, 操作比较柔和一点,还原后,项目的提交记录和远程保持一致了.但是本地已修改的代码不会丢弃.未推送到远程的代码代码还在本地,只是提交记录和远程保持一致了--hard
不是默认的,需要指定, 操作很强硬, 执行后, 本地的已修改未推送到远程的代码会彻底丢弃