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)在某次提交上,点击右键

refusing to merge unrelated histories idea 操作_学习


refusing to merge unrelated histories idea 操作_重置_02

refusing to merge unrelated histories idea 操作_学习_03

  • 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 的保护机制,不能强制提交代码,需要在远程仓库的设置中,将代码保护去除,更新完代码,再保护即可。