Git常用操作

还原至master

--mixed和--hard

git reset 右面可选{--mixed, --hard}, 两者有本质的区别. --mixed默认

操作git reset --hard origin/mastergit reset --mixed origin/master
HEAD重置为 origin/master 指向的提交重置为 origin/master 指向的提交
暂存区(staging area)重置为远程 origin/master 的状态,丢弃所有已暂存的更改重置为远程 origin/master 的状态,丢弃所有已暂存的更改
工作目录(working directory)恢复为远程 origin/master 的状态,丢弃所有未提交的更改保留本地修改,但将其恢复为“未暂存”状态,不会丢失工作目录中的更改

两者的相同点:

  1. 都是为了把未推送到远程的代码状态还原到和远程状态
  2. 执行好,新增的文件,会回退到未暂存的状态,不会被删除.
    1. 删除的话需要执行git clean -fd,谨慎操作.执行后,本地未推送到远程的代码将会彻底丢失
      1. -f表示强制删除
      2. -d表示删除未跟踪的目录

两者的本质区别:

  1. --mixed是默认的, 操作比较柔和一点,还原后,项目的提交记录和远程保持一致了.但是本地已修改的代码不会丢弃.未推送到远程的代码代码还在本地,只是提交记录和远程保持一致了
  2. --hard不是默认的,需要指定, 操作很强硬, 执行后, 本地的已修改未推送到远程的代码会彻底丢弃