切换分支

  1. 最佳实践: 每次切换分支前 当前分支一定得是干净的(已提交状态)
  2. 坑:
  3. 在切换分支时 如果当前分支上有未暂存的修改(第一次) 或者 有未提交的暂存(第一次)
  4. 分支可以切换成功 但是这种操作可能会污染其他分支
  5. 动三个地方
  6. HEAD
  7. 暂存区
  8. 工作目录

后悔药

  1. 工作区
  2. 如何撤回自己在工作目录中的修改 : git checkout --filename
  3. 暂存区
  4. 如何何撤回自己的暂存 : git reset HEAD filename
  5. 版本库
  6. 如何撤回自己的提交 : git commit --amend
  7. 1.注释写错了,重新给用户一次机会改注释

reset

  1. git log :
  2. git reflog : 主要是HEAD有变化 那么git reflog机会记录下来
  3. 三部曲
  4. 第一部: git rest --soft HEAD~ (--amend)
  5. 只动HEAD (带着分支一起移动)
  6. 第二部: git reset [--mixed] HEAD~
  7. HEAD (带着分支一起移动)
  8. 动了暂存区
  9. 第三部: git reset --hard HEAD~
  10. HEAD (带着分支一起移动)
  11. 动了暂存区
  12. 动了工作目录

checkout

  1. git checkout commithash & git reset --hard commithash
  2. 1. checkout只动HEAD --hardHEAD而且带着分支一起走
  3. 2. checkout对工作目录是安全的 --hard是强制覆盖工作目录
  4. git checkout commithash
  5. git checkout --filename
  6. 相比于git reset --hard commitHash --filename
  7. 第一 第二步都没做
  8. 只会动了工作目录
  9. git checkout commithash <file>
  10. 将会跳过第 1
  11. 更新暂存区
  12. 更新工作目录

路径reset

  1. git reset HEAD filename (reset 将会跳过第 1 步)
  2. 动了暂存区