Git 的工作流:
工作区:在 git add xx 之前,在自己当前分支所修改的代码内容!
暂存区:已经 git add xxx 进去,且没有执行 git commit xxx 的。
本地分支:已经 git commit -m xxx 提交到本地分支的。
远程分支:git push origin HEAD:refs/for/master HEAD 是本地,master是远程分支。
一、还原文件(未使用git add 命令 :)
1、git checkout -- fill 或 git checkout -- .
二、撤销到 git add 之前(使用了git add 未使用git commit -m '****')
1、git reset HEAD . 或 git reset HEAD a.txt
注意:这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前 无任何变化.
三、撤销到 git add 之前(使用git commit -m '****')
1、git reset --hard HEAD^ # 回到最新的一次提交(会删除掉本次修改,慎、用!!!)
2、git reset --hard <commit_id> 回到其中你想要的某个版本
3、git reset HEAD^ 此时代码保留, 回到git add .之前的状态
四、代码 git push 把修改提交到远程仓库 (git reset || git revert)
1、git reset --hard <commit_id> 回滚到某个分支(清除了暂存区的内容)
git reset --soft <commit_id> 回退到某个版本 不会清除暂存区
2、git push origin HEAD --force 强制提交一次,之前错误的提交就从远程仓库删除(会删除掉commit_id之后的分支信息,慎用!!!)
3、git revert <commit_id> 撤销指定的版本,撤销也会作为一次提交进行保存