git回退版本
- 1、使用场景
- 2、Android Studio开发工具回退
- 1)在某次提交上,点击右键
- 2)git reset current branch to here的本质:是移动 HEAD 以及它所指向的 branch。几种模式的主要区别是:
- 3、git命令行回退
1、使用场景
- 提交了多次错误的提交,想回滚到之前的某次提交。
- 合并了错误的分支,想回滚到合并之前。
2、Android Studio开发工具回退
git reset current branch to here //是git命令中的一种回滚操作
1)在某次提交上,点击右键
- Working Tree 当前的工作区域
- Index/Stage 暂存区域,和git stash命令暂存的地方不一样。使用git add xx,就可以将xx添加近Stage里面
- Repository 提交的历史,即使用git commit提交后的结果
2)git reset current branch to here的本质:是移动 HEAD 以及它所指向的 branch。几种模式的主要区别是:
- soft:重置位置的同时,保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的【差异变更集】会放入index暂存区中(Staged files)。所以效果看起来就是工作目录的内容不变,暂存区原有的内容也不变,只是原节点和Reset节点之间的所有差异都会放到暂存区中。
- mixed(默认):重置位置的同时,只保留Working Tree工作目录的內容,但会将 Index暂存区 和 Repository 中的內容更改和reset目标节点一致,因此原节点和Reset节点之间的【差异变更集】会放入Working Tree工作目录中。所以效果看起来就是原节点和Reset节点之间的所有差异都会放到工作目录中。
- hard:重置位置的同时,直接将 working Tree工作目录、 index 暂存区及 repository 都重置成目标Reset节点的內容,所以效果看起来等同于清空暂存区和工作区。
- keep:重置位置的同时,直接将 working Tree工作目录 和 repository 都重置成目标Reset节点的內容,index 暂存区 的内容保持不变。
一般情况下,不要轻易使用hard模式。
3、git命令行回退
1.首先查找版本号:
git log
2.确定恢复到指定版本:
git reset --hard f5c706a6 //f5c706a6为版本号
3.强制将本地代码同步到远程仓库:
git push origin master --force //master主分支
4.error: Git:You are not allowed to force push code to a protected branch on this project
由于git 的保护机制,不能强制提交代码,需要在远程仓库的设置中,将代码保护去除,更新完代码,再保护即可。