git切换到旧版本_git查看历史版本

git查看历史版本以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

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

我们简单的描述一个例子:a)初始化操作有两个文件file1.txt和file2.txt1, 初始化的时候就有这两个文件操作:git initgit statusgit add .git mit -m “init version”2, 在master分支上修改了file1.txt,并提交操作:(修改file1.txt)git add file1.txtgit mit -m “change file1”3, 然后新建分支banana,并切换到banana分支上操作:git branch bananagit checkout banana4, 修改file1.txt和file2.txt,并提交。

操作:(修改file1.txt和file2.txt)git add file1.txt file2.txtgit mit -m “change by banana”这个时候,我们可以输入 gitk,查看一下当前的版本情况。如下图:git-0015, 然后,切换到master分支上,修改file2.txt,并提交。

操作:git checkout master(修改file2.txt)git add file2.txtgit mit -m “change by master”输入gitk,查看当前版本情况,如下图:git-002b)发现问题需要查看历史版本我们现在发现当前的版本有点问题,还不能提交到版本库。1,我们需要从git mit中返回.则输入: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 mit”状态。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以上的操作,我们知道了如何查看版本分支,和如何回复到以前的版本。

二、windows下git怎么查看提交历史

1.查看Git日志:

命令:git log 默认不加参数,git日志会按照最新的日期从上往下显示 参数:-p 显示版本间的代码差异

-数字 显示部分的提交

-哈希值 显示指定的版本

2.指定查找范围:

--since="5 hours" 显示最近5小时内的提交 --since="5 hours" -1 显示5小时内的最后一个提交 --before 用法和--since的用法差不多,显示的是在某个时间点之前的提交 版本1..版本2 说明:版本1之后到版本2的所有提交,版本2可以用 HEAD(要注意大写)表示当前的最新版本 版本^ 回溯一个版本 注意: 在windows下要加双引号"版本^" ~N: 回溯N个版本

3.查看指定版本之间的差异

git diff 版本号 说明:当前目录树和对应版本号的差异 git diff --stat 说明:统计对应改动的代码量

4.撤销修改

4.1增补修改(只能用于针对最后一个提交)

git mit -C HEAD -a --amend

4.2反转提交

创建一个新的反向的提交来抵消原来的提交

git revert -n HEAD 反转当前版本库最新的提交并且缓存起来。但是不提交

4.3复位

git reset --soft 缓存因复位带来的差异但是不提交,也就是复位到上一个提交前的状态 git reset --hard 同时删除提交 例子:git reset --hard HEAD^ 复位到HEAD之前的那个版本

5重新改写历史记录

什么时候需要改写历史记录?

给历史记录重新排序

多个提交合并成一个提交

一个提交分解成多个提交

git rebase -i HEAD~3

本质上利用的是变基操作,定位到你想变化的范围之前。然后进入编辑器去修改你想修改的部分。完成之后再回到当前的末梢。

三、windows下git怎么查看提交历史

给历史记录重新排序多个提交合并成一个提交一个提交分解成多个提交git rebase -i HEAD~3本质上利用的是变基操作,定位到你想变化的范围之前.指定查找范围:--since="5 hours"。

然后进入编辑器去修改你想修改的部分:版本1之后到版本2的所有提交,版本2可以用 HEAD(要注意大写)表示当前的最新版本 版本^ 回溯一个版本 注意: 在windows下要加双引号":git log 默认不加参数,git日志会按照最新的日期从上往下显示 参数; -1 显示5小时内的最后一个提交 --before 用法和--since的用法差不多:-p 显示版本间的代码差异-数字 显示部分的提交-哈希值 显示指定的版本2..版本2 说明;版本^" ~N: 回溯N个版本3; 显示最近5小时内的提交 --since="5 hours".3复位git reset --soft 缓存因复位带来的差异但是不提交,也就是复位到上一个提交前的状态 git reset --hard 同时删除提交 例子:git reset --hard HEAD^ 复位到HEAD之前的那个版本5重新改写历史记录什么时候需要改写历史记录,显示的是在某个时间点之前的提交 版本1.查看指定版本之间的差异git diff 版本号 说明:当前目录树和对应版本号的差异 git diff --stat 说明:统计对应改动的代码量4.撤销修改4.1增补修改(只能用于针对最后一个提交)git mit -C HEAD -a --amend4.2反转提交创建一个新的反向的提交来抵消原来的提交git revert -n HEAD 反转当前版本库最新的提交并且缓存起来。但是不提交41.查看Git日志:命令。

四、怎么查看ubuntu git版本

git查看提交历史

这是git中使用平率非常高的一个操作,git中查看提交历史的功能也非常强大,提供各种筛选和输出格式定制功能。

最简单的,运行git log命令,你将看到一个详细的提交日志:

git-log

# 当然也可以只查看某个版本

$ git log fd0a1b2

信息内容都很好理解,重点说说第一行mit后这个40个字符的字符串,这是该次提交的对应的SHA-1值,在git中,会对提交(mit)、文件(blob)、目录(tree)、标签(tag)生成一个唯一的SHA-1值,git就是基于此来得知文件或目录的改动,因为这四类对象计算得到的SHA-1值都是唯一的,同时你也可以直接使用SHA-1值来指代相应的对象。比如:

$ git show bdd3996

# 查看某个版本下具体某个文件

$ git show bdd3996 README

git log还有很多命令选项来定制历史记录

选项 说明

-(n) 仅显示最近的 n 条提交

–since,–after 仅显示指定时间之后的提交

–until,–before 仅显示指定时间之前的提交

–author 仅显示指定作者相关的提交

–mitter 仅显示指定提交者相关的提交

–reverse 按时间倒序显示

-p 按补丁格式显示每个更新之间的差异

–stat 显示每次更新的文件修改统计信息

–shortstat 只显示 –stat 中最后的行数修改添加移除统计

–name-only 仅在提交信息后显示已修改的文件清单

–name-status 显示新增、修改、删除的文件清单

–abbrev-mit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符

–relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)

–graph 显示 ASCII 图形表示的分支合并历史

五、Git怎么还原上一个版本

第一步: git log 查看之前的mit的id,找到想要还原的版本第二步: git reset --hard 44bd896bb726be3d3815f1f25d738a9cd402a477 还原到之前的某个版本第三步: git push -f origin master 强制push到远程 前两步在eclipse中也可操作: team --> show in hostory 找到想还原的版本 然后再强制push (git push -f origin master)。

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

有些时候,在一些特殊情况下,我们需要将代码恢复到一个历史的提交版本上。

而这个历史提交版本,离最新的提交已经比较久远了。比如,我希望将如下的仓库的提交,恢复到上上上上次提交。

当然,我可以一次一次的 revert,但是有没有更快更简单的办法呢?暴力的方式如果你的仓库是自己在用(不影响别人),那么你可以使用 git reset --hard 来恢复到指定的提交,再用 git push -f 来强制更新远程的分支指针。为了保证万一需要找回历史提交,我们可以先打一个 tag 来备份。

对于刚刚的例子,需要执行的命令就是:// 备份当前的分支到 backup_mitgit tag backup_mitgit push origin backup_mit// 重置 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 mit 即可。最终完成的效果如下:不过经过念茜的提醒,该方法需要保证 reset 的时候没有别人做新的提交,如果有的话,会一并把别人的提交也撤销了。

所以还是挺危险的,慎用。虽然用到的时候很少,但是理解它的原理有助于大家理解 Git 的工作区,暂存区和版本库的各种指针操作的意义,希望对大家有用。

七、git怎么查询当前分支的版本号

#git reflog git log --pretty =oneline结果如下:69e1506ad9fed9771b9f7d1e478ac2ff05fc3604 Add git user profile functions for prompt displayc4582777fc50162d8b433cabad34f629b0ea9b98 Merge pull request #4957 from TorrentKatten/mastere8a9d0ee1a97033fb4aa371263889b77200b6d62 localization support for clock in candy themec3b3de5f29b72b45393b62d794450ad3a72703a8 Merge pull request #4956 from RobLoach/asdf616ac67924212df2f75139c94ca323f13f249dc6 Add 'asdf' plugin。

分页:123

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值