🎸 Git 相关疑难操作总结
Git 版本回退详解
Git 版本回退可以用到的两个命令:Reset 重置命令、Revert 恢复命令
没有提交远程仓库
使用 Reset 重置命令即可
- 利用
git log
或者git reflog
查看需要回退的指定提交版本的索引号 - 利用
git reset --soft/--mixed/--hard
索引号进行版本回退--soft
:重置位置的同时,保留 Working Tree 工作目录和 index 暂存区的内容,只让 Repository 中的内容和 reset 目标节点保持一致。(解释:会让本地仓库回退到指定的Commit中,被舍弃的Commits代码提交记录文件会保留到本地暂存区中,只撤销了git commit的操作)--mixed
(默认):重置位置的同时,只保留 Working Tree 工作目录的內容,但会将 Index 暂存区 和 Repository 中的內容更改和 Reset 目标节点一致。(解释:会让本地仓库回退到指定的Commit中,被舍弃的Commits代码提交记录文件会保留到本地暂存区中,只撤销了git:会让本地仓库回退到指定的Commit中,被舍弃的Commits代码提交记录文件会保留到工作目录中中,撤销了git add和git commit的操作)--hard
:本地仓库提交记录回到指点索引号中,而舍弃的Commits不会被保留,直接丢失。慎用!
已提交到远程仓库
一共有两种方式
-
利用
git reset --hard 索引号
删除需要被舍弃的提交记录,然后强制提交。(前提你有强制Push的权限并且这个操作不会留下记录。慎用) -
利用
git revert
撤销指定的代码提交记录。(如果有多个提交记录需要撤销那就需要执行几次。执行一次就会有一次Revert的记录)