目录
前言
Git回滚工作区的代码
回滚暂存区的代码
回滚Commit本地分支后的代码
git push把修改提交到远程仓库
归属系列:
前言
本文旨在描述Git中各种回退操作。
Git回滚工作区的代码
前提:当前工作区未进行暂存操作。
-
git checkout -- a.txt # 丢弃某个文件,或者 git checkout -- . # 丢弃全部
注意:git checkout – . 丢弃全部,包括:
- 新增的文件会被删除
- 删除的文件会恢复回来
- 修改的文件会回去
回到工作区之前的状态。对先前保存在暂存区里的代码不会有任何影响。不会对commit提交到本地分支的代码产生影响。如果之前没有暂存或commit,即回到上次pull的状态。
回滚暂存区的代码
前提:git add到缓存区,并未commit提交
git reset HEAD . or
git reset HEAD a.txt
这个命令仅改变暂存区,并不改变工作区(mixed),意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化。
回滚Commit本地分支后的代码
前提:git commit到本地分支,但没有git push到远程仓库
- git log # 得到需要回退的且已提交的commit id
- git reset --hard <commit_id> # 回到其中你想要的某个版或者(工作区和暂存区均重置)
- git reset --hard HEAD^ # 回到最新的一次提交或者(mixed)
- git reset HEAD^ # 回到最新的一次提交(暂存区重置,保留当前工作区的改动)
-
git push把修改提交到远程仓库
通过git reset是直接删除指定的commit
- git log # 得到你需要回退一次提交的commit id
- git reset --hard <commit_id>
- git push origin HEAD --force # 强制提交一次,之前错误的提交就从远程仓库删除。
归属系列:
LINK:<li><a href="文章链接">文章标题</a></li>