本地的push和merge会形成MERGE-HEAD(FETCH-HEAD), HEAD(PUSH-HEAD)这样的引用。
HEAD代表本地最近成功push后形成的引用。
MERGE-HEAD表示成功pull后形成的引用。
可以通过MERGE-HEAD或者HEAD来实现类型与svn revet的效果。

解决:

将本地的冲突文件冲掉,不仅要reset到MERGE-HEAD或者HEAD,还需—hard。没有后面的hard,不会冲掉本地工作区。只会冲掉stage区。

  1. git reset --hard FETCH_HEAD

Detached HEAD问题

  1. git checkout -b temp # 创建临时分支
  2. git add .
  3. git commit # 提交修改代码到临时分支
  4. git checkout master # 切回主分支
  5. git merge temp # 拉取临时分支代码
  6. git branch -d temp