导航:首页 > 人文历史 > git怎么恢复历史版本号

git怎么恢复历史版本号

发布时间:2022-06-26 13:37:03

❶ git如何回退到某个版本

1. 使用git log命令查看所有的历史版本,获取某个历史版本的id,假设查到历史版本的id是。
2.使用命令
git reset --hard

3. 把修改推到远程服务器

git push -f -u origin master

❷ 怎么使用repo或git工具将本地代码回退到历史的某一个版本。

那些xml文件是分支配置的文件,使用的话直接init 后再sync就可以了
repo init git地址 -b 分支名 -m xml文件名
repo sync

如果要将本地代码回到某个历史版本直接checkout 或者 reset
checkout 支持将文件切换到历史版本,数据库不会修改,还可以回到你最新的状态
reset 是直接回退带指定版本,它有两种模式 一种是只将所有提交回退,修改还在,还有一种模式是完全回退,修改直接就没了。

repo forall -c git chekout 指定节点的哈希值
repo forall -c git reset 指定节点的哈希值
repo forall -c git reset 指定节点的哈希值 --hard (此操作会回退掉指定节点之后的所有修改,如果回退出错 只能重新跟服务器同步了。)

希望我的回答能帮助你

❸ 如何回退github服务器的历史版本

打开Github For Windows 进入到需要回退的项目主页,在History里选中要回退的某个版本,点击右侧的“roll back”按钮

2
这时在下方就会提示一个“UNDO”的撤销操作,代表你已经成功回退到某个版本了

3
当然你可以直接在命令行使用 git reset --hard <commit ID号> 或者 git reset --hard HEAD^来进行回退

❹ git 没add 就用reset回到之前的版本了,还有办法回来吗

没有用git add,也就是相应的信息没有加入到Git的缓冲区中,更没有被Git作为版本提交记录下来。所以,不能恢复了.

❺ 如何用 Git 将代码恢复到一个历史的版本

有些时候,在一些特殊情况下,我们需要将代码恢复到一个历史的提交版本上。而这个历史提交版本,离最新的提交已经比较久远了。
比如,我希望将如下的仓库的提交,恢复到上上上上次提交。当然,我可以一次一次的 revert,但是有没有更快更简单的办法呢?

暴力的方式
如果你的仓库是自己在用(不影响别人),那么你可以使用 git reset --hard <target_commit_id> 来恢复到指定的提交,再用 git push -f 来强制更新远程的分支指针。为了保证万一需要找回历史提交,我们可以先打一个 tag 来备份。
对于刚刚的例子,需要执行的命令就是:
// 备份当前的分支到 backup_commit
git tag backup_commit
git push origin backup_commit
// 重置 source 分支
git reset --hard 23801b2
// 强制 push 更新远程分支
git push origin source -f

温和的方式
如果你的仓库是多人在协作,那么你这么操作会使用别人本地的代码库混乱,所以只能建一个新的提交,这个新的提交中把想取消的提交都 revert 掉,那么具体应该如何做呢?方法如下:
首先,和刚刚一样,用 git reset --hard 23801b2 将代码切换到目标提交的 id。接下来,用 git reset --soft origin/source 命令,将当前代码切换回最新的提交。
执行完上面两步后,你的仓库还是最新的提交,但是工作区变成了历史的提交内容,这个时候用 git add 和 git commit 即可。最终完成的效果如下:

不过经过念茜的提醒,该方法需要保证 reset 的时候没有别人做新的提交,如果有的话,会一并把别人的提交也撤销了。所以还是挺危险的,慎用。
虽然用到的时候很少,但是理解它的原理有助于大家理解 Git 的工作区,暂存区和版本库的各种指针操作的意义,希望对大家有用。

❻ zend studio 10 使用git 如何回到历史版本

一.选中你的项目->右键->replaced with->commit

二.会弹出一个对话框,告诉你现在的代码将不会保留,直接点OK即可。

三.选中你要恢复到的时间点

四.点击OK即可

❼ Git当中怎么寻找版本号,并回退以前版本当中的某个文件

简单,git log -- your_path即可列出某个路径的changelog,然后进一步查commit记录就可以找到被删掉的文件记录了
比如我的xalk/grails-app/conf/Config.groovy早已经删掉,但是可以通过git log显示最后一次该文件的递交记录拿到这个commit。
git log -1 --decorate -- xalk/grails-app/conf/Config.groovy

❽ git怎样回退到上一个

这些开发中很常见的问题,所以git的取消提交,回退甚至返回上一版本都是特别重要的.
大致分为下面2种情况:

1.没有push
这种情况发生在你的本地代码仓库,可能你add ,commit 以后发现代码有点问题,准备取消提交,用到下面命令
reset
git reset [--soft | --mixed | --hard

上面常见三种类型

--mixed
会保留源码,只是将git commit和index 信息回退到了某个版本.
git reset 默认是 --mixed 模式
git reset --mixed 等价于 git reset

--soft
保留源码,只回退到commit 信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.

--hard
源码也会回退到某个版本,commit和index 都回回退到某个版本.(注意,这种方式是改变本地代码仓库源码)
当然有人在push代码以后,也使用 reset --hard <commit...> 回退代码到某个版本之前,但是这样会有一个问题,你线上的代码没有变,线上commit,index都没有变,当你把本地代码修改完提交的时候你会发现权是冲突.....
所以,这种情况你要使用下面的方式

2.已经push
对于已经把代码push到线上仓库,你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致.你要用到下面的命令

revert
git revert用于反转提交,执行evert命令时要求工作树必须是干净的.
git revert用一个新提交来消除一个历史提交所做的任何修改.
revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push 既可以把线上的代码更新.(这里不会像reset造成冲突的问题)

revert 使用,需要先找到你想回滚版本唯一的commit标识代码,可以用 git log 或者在adgit搭建的web环境历史提交记录里查看.
git revert

通常,前几位即可
git revert c011eb3

git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit
看似达到的效果是一样的,其实完全不同.
第一:
上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突.但是revert 并不会.
第二:
如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.
第三:
reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.

❾ git 获取历史版本的几种方式

我们简单的描述一个例子:
a)初始化操作
有两个文件file1.txt和file2.txt

1, 初始化的时候就有这两个文件

操作:

git init

git status

git add .

git commit -m “init version”

2, 在master分支上修改了file1.txt,并提交

操作:

(修改file1.txt)

git add file1.txt

git commit -m “change file1”

3, 然后新建分支banana,并切换到banana分支上

操作:

git branch banana

git checkout banana

4, 修改file1.txt和file2.txt,并提交。

操作:

(修改file1.txt和file2.txt)

git add file1.txt file2.txt

git commit -m “change by banana”

这个时候,我们可以输入 gitk,查看一下当前的版本情况。如下图:git-001

5, 然后,切换到master分支上,修改file2.txt,并提交。

操作:

git checkout master

(修改file2.txt)

git add file2.txt

git commit -m “change by master”

输入gitk,查看当前版本情况,如下图:git-002

b)发现问题需要查看历史版本
我们现在发现当前的版本有点问题,还不能提交到版本库。

1,我们需要从git commit中返回.

则输入:

git reset --soft HEAD^

解释一下,HEAD是当前分支的最新版本。^表示父节点。当前节点的父节点,就是上一次提交的版本。也就是标记为“change file1”的版本。

问为什么不是”change by banana”这个版本呢?不同的分支哦。”change by banana”是banana分支的最新代码,和master分支不同的。

这个时候输入

git status

看看,是不是显示file2.txt修改了没有提交呢。

2,我们需要从git add中返回

再仔细查看之后,我们发现file2.txt真的写错了,需要返回到git add之前的状态。

输入:

git reset -q file2.txt

这个时候,file2.txt就回到了解放前了。用git status查看一下,file2.txt是”change not staged for commit”状态。

3,回到没有做过的情况

我们最终确定,最后一次修改的file2.txt是无用的代码,我们需要废弃掉。

注意,这个操作不能恢复的哦。

git reset --hard

这个命令,不能指定具体的文件。是把当前的修改全部清除,恢复到最后一次提交的版本。

这个时候,用gitk查看一下:git-003

已经彻底回复到了“change file 1”的版本了。

4,直接回复到某个版本

我们现在切换到banana分支。

git checkout banana

然后用gitk看一下。可以看出,我们之前的操作,对banana分支一点影响也没有。现在我们需要把banana分支回复到初始状态,但是当前的改动的代码还是需要留着。我们可以看,init版本是当前版本的父节点的父节点。我们可以这么操作:

git reset --soft HEAD^^

然后用gitk看一下:git-004

最近的版本已经变成了init version了。所有的改动都是add未提交状态。

5,得到当前最新代码

最后。我们把file1.txt和file2.txt都删掉。我们需要从版本库中取得当前最新的代码。

很简单:

git checkout master

如果是要banana分支的最新代码,则:

git checkout banana

以上的操作,我们知道了如何查看版本分支,和如何回复到以前的版本。

阅读全文

与git怎么恢复历史版本号相关的资料

热点内容
word中化学式的数字怎么打出来 浏览:746
乙酸乙酯化学式怎么算 浏览:1411
沈阳初中的数学是什么版本的 浏览:1363
华为手机家人共享如何查看地理位置 浏览:1054
一氧化碳还原氧化铝化学方程式怎么配平 浏览:894
数学c什么意思是什么意思是什么 浏览:1421
中考初中地理如何补 浏览:1312
360浏览器历史在哪里下载迅雷下载 浏览:712
数学奥数卡怎么办 浏览:1402
如何回答地理是什么 浏览:1035
win7如何删除电脑文件浏览历史 浏览:1063
大学物理实验干什么用的到 浏览:1494
二年级上册数学框框怎么填 浏览:1713
西安瑞禧生物科技有限公司怎么样 浏览:1002
武大的分析化学怎么样 浏览:1255
ige电化学发光偏高怎么办 浏览:1345
学而思初中英语和语文怎么样 浏览:1666
下列哪个水飞蓟素化学结构 浏览:1430
化学理学哪些专业好 浏览:1493
数学中的棱的意思是什么 浏览:1071