A. Git怎么还原上一个版本
第一步: git log 查看之前的commit的id,找到想要还原的版本第二步: git reset –hard 还原到之前的某个版本第三步: git push -f origin master 强制回push到远程
前两步在eclipse中也可答操作:
team –> show in hostory
找到想还原的版本
然后再强制push (git push -f origin master)
B. 在eclipse里面使用SVN,怎么实现版本回滚
工具:
eclipse
svn
方法:
点击window–show view–other
C. 63.Git Reset 详解版本回滚的三种模式
意思就是可以让HEAD这个指针指向其他版本。说白了就是通过此命令在版本之间进行穿梭。 它有三种模式,soft,mixed,hard,具体的使用方法下面这张图,展示的很全面了。
这三个模式理解了,对于使用这个命令很有帮助。在理解这三个模悔敬简式之前,需要略微知道一点Git的基本流程。正如上图,Git会有三个区域:
Working Tree 当前的工作区域 Index/Stage 暂存区域,和git stash命令暂存的地方不一样。使用git add xx,就可以将xx添加近Stage里面 Repository 提交的历史,即使用git commit提交后的结果
首先, Git 必须知道当前版本是哪个版本,在 Git 中,用 HEAD 表示当前版本,上一个版本就是 HEAD^ ,上上一个版本就是 HEAD^^ ,以此类推,当然往上100个版本写100个 ^ 比较容易数不过来,所以写成 HEAD~100 。
–hard 会在重置 HEAD 和branch的同时,重置缓存区和工作目录里的内容。当你在 reset 后面加了 –hard 参数时,你的缓存区和工作目录里的内容会被完全重置为和HEAD的新位置相同的内容。换句话说,就是你的没稿芹有commit的修改会被全部擦掉。
回退到上一版本:
回退到指定版本号(以1a2b3c为例)的版本:
reset –hard:重置stage区和工作目录:
–soft 则会保留工作目录的内容,并把因为重置 HEAD 所带来的新的文件差异放进暂存区。
什么是「重置 HEAD 所带来的新的差异」?就是这里:
由于 HEAD 从 4 移动到了 3,而且在 reset 的过程中工作目录和暂存区的内容没有被清理掉,所以 4 中的改动在 reset 后就也成了工作目录新增的「工作目录和 HEAD 的差异」。这就是上面一段中所说的「重置 HEAD 所带来的差异」。
这就是–soft 和 –hard 的区别:–hard 会清空工作目录和暂碧裤存区的改动,*而 –soft则会保留工作目录的内容,并把因为保留工作目录内容所带来的新的文件差异放进暂存区。
git reset 如果不加参数,那么默认使用 –mixed 参数。此时表示要:保留工作目录,并清空暂存区。也就是说,工作目录的修改、暂存区的内容以及由 reset 所导致的新的文件差异,都会被放进工作目录。简而言之,就是「把所有差异都混合(mixed)放在工作目录中」。
首先, Git 必须知道当前版本是哪个版本,在 Git 中,用 HEAD 表示当前版本,上一个版本就是 HEAD^ ,上上一个版本就是 HEAD^^ ,以此类推,当然往上100个版本写100个 ^ 比较容易数不过来,所以写成 HEAD~100 。
回退到上一版本:
回退到指定版本号(以1a2b3c为例)的版本:
–hard 会清空工作目录和暂存区的改动, –soft则会保留工作目录的内容,并把因为保留工作目录内容所带来的新的文件差异放进暂存区。 –mixed 参数。git reset 如果不加参数,那么默认使用 –mixed 参数。此时表示要:保留工作目录,并清空暂存区。
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令 git reset –hard commit_id
穿梭前,用 git log 可以查看提交历史,以便确定要回退到哪个版本。 要重返未来,用 git reflog 查看命令历史,以便确定要回到未来的哪个版本。
D. 在eclipse里面使用SVN,怎么实现版本回滚
在eclipse里面使用SVN实现版本回滚的方法:
一、如果有本地修改,需提交蔽旅到远程svn服务器或撤销修改;
二、更新本地代码,保持和远程代码一致,如下图:
五、svn提交修改,生成一个回滚后的最新版本。