切换分支
最佳实践: 每次切换分支前 当前分支一定得是干净的(已提交状态)坑: 在切换分支时 如果当前分支上有未暂存的修改(第一次) 或者 有未提交的暂存(第一次) 分支可以切换成功 但是这种操作可能会污染其他分支动三个地方 HEAD 暂存区 工作目录
后悔药
工作区 如何撤回自己在工作目录中的修改 : git checkout --filename暂存区 如何何撤回自己的暂存 : git reset HEAD filename版本库 如何撤回自己的提交 : git commit --amend 1.注释写错了,重新给用户一次机会改注释
reset
git log : git reflog : 主要是HEAD有变化 那么git reflog机会记录下来三部曲 第一部: git rest --soft HEAD~ (--amend) 只动HEAD (带着分支一起移动) 第二部: git reset [--mixed] HEAD~ 动HEAD (带着分支一起移动) 动了暂存区 第三部: git reset --hard HEAD~ 动HEAD (带着分支一起移动) 动了暂存区 动了工作目录
checkout
git checkout commithash & git reset --hard commithash 1. checkout只动HEAD --hard动HEAD而且带着分支一起走 2. checkout对工作目录是安全的 --hard是强制覆盖工作目录git checkout commithashgit checkout --filename 相比于git reset --hard commitHash --filename 第一 第二步都没做 只会动了工作目录git checkout commithash <file> 将会跳过第 1 步 更新暂存区 更新工作目录
路径reset
git reset HEAD filename (reset 将会跳过第 1 步) 动了暂存区