git查看历史
Posted 版本
篇首语:别总是羡慕别人光芒万丈,却忘了自己也会发光。本文由小常识网(cha138.com)小编为大家整理,主要介绍了git查看历史相关的知识,希望对你有一定的参考价值。
git查看历史
1.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
本质上利用的是变基操作,定位到你想变化的范围之前。然后进入编辑器去修改你想修改的部分。完成之后再回到当前的末梢。
2.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日志:命令。
3.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以上的操作,我们知道了如何查看版本分支,和如何回复到以前的版本。
4.git清除历史纪录
若我想删除历史记录里比较考前的提交,而后面还有很多需要保留的提交,则:1.2 如果要删除的历史记录是分散的,则可以考虑 Interactive Rebase,自行挑拣/合并等。
如git rebase -i 1.1 如果要删除的历史记录是连续的,比如说从最开始到某一刻全部都删除或者是中间一截可以删除,则可以考虑 Onto Rebase,如 git rebase --onto ,其中 START 到 END 之间的是需要保留的部分,而 ONTO_BASE 则是最新的基点;换言之,从 ONTO_BASE 到 START 之间的历史记录会被干掉。若我要删除的历史记录很多,要保留的则很少(比如说就保留最近的一个,以前都不想要了),那索性可以直接创建 Orphan Branch 来重建历史记录。
如 git checkout --orphan new_start,这条命令会创建一个叫做 new_start 的分支,该分支没有任何历史记录,但是所有的文件都会原封不动的存在,你可以据此开始重新提交。完成之后甚至可以把旧的分支直接废弃。
另外,也可以指定新分支的起点,默认当然是从 HEAD 开始了。你还可以把历史记录分成两份(或更多份),其中有的完整,有的则简化等等,具体参见这篇关于 git replace 的文档:其实还有很多种场景可以说道,Git 的用法非常灵活,即使暂时用不到也值得细细过一遍知道它能做什么样的事情,然后遇到各种复杂的场景就可以自己推导出解决方案了。
5.git清除历史纪录
若我想删除历史记录里比较考前的提交,而后面还有很多需要保留的提交,则:
1.2 如果要删除的历史记录是分散的,则可以考虑 Interactive Rebase,自行挑拣/合并等。如git rebase -i <ref>
1.1 如果要删除的历史记录是连续的,比如说从最开始到某一刻全部都删除或者是中间一截可以删除,则可以考虑 Onto Rebase,如 git rebase --onto <ONTO_BASE_ref> <START_ref> <END_ref>;,其中 START 到 END 之间的是需要保留的部分,而 ONTO_BASE 则是最新的基点;换言之,从 ONTO_BASE 到 START 之间的历史记录会被干掉。
若我要删除的历史记录很多,要保留的则很少(比如说就保留最近的一个,以前都不想要了),那索性可以直接创建 Orphan Branch 来重建历史记录。如 git checkout --orphan new_start,这条命令会创建一个叫做 new_start 的分支,该分支没有任何历史记录,但是所有的文件都会原封不动的存在,你可以据此开始重新提交。完成之后甚至可以把旧的分支直接废弃。另外,也可以指定新分支的起点,默认当然是从 HEAD 开始了。
你还可以把历史记录分成两份(或更多份),其中有的完整,有的则简化等等,具体参见这篇关于 git replace 的文档:
其实还有很多种场景可以说道,Git 的用法非常灵活,即使暂时用不到也值得细细过一遍知道它能做什么样的事情,然后遇到各种复杂的场景就可以自己推导出解决方案了。
相关参考
1.git获取历史版本的几种方式我们简单的描述一个例子:a)初始化操作有两个文件file1.txt和file2.txt1,初始化的时候就有这两个文件操作:gitinitgitstatusgitadd.
Git使用amend选项提供了最后一次mit的反悔。但是对于历史提交呢,就必须使用rebase了。gitrebase-iHEAD~3表示要修改当前版本的倒数第三次状态。这个命令出来之后,会出来三行东东
Git怎样撤销一次分支的合并Merge 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!由于太多人问怎么撤销mer
一、ipad怎么查询网页登陆历史记录iPad的Safari界面跟iPhone上的Safari不太一样。今天我要介绍的是查看iPad版Safari查看历史记录的方法。通常,当我们不小心误关闭了一个网页时
1.如何查看百度浏览器历史访问记录1、打开百度浏览器右上方的菜单按钮,如图所示。2、完成后,选择历史记录,如图所示。3、在左边,可选择今天,昨天,或者更早,点击就可看到你所需要查看的时间,所浏览的历史
一、怎么查看QQ的历史系统消息准备工具/材料:装有windows10的电脑一台,QQ软件。查看QQ的历史系统消息的办法如下:1、首先,我们双击电脑桌面上的QQ。2、在弹出界面中,我们输入账号和密码,然
1.linux如何查看用户所有的历史操作记录1、使用w命令查看登录用户正在使用的进程信息,w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp
一、怎么查看打印机的打印历史记录不要做坏事哦~用下面的方法试一下,一定行的:1.在你的打印机的属性中的安全中打开高级选项,在审核中点击添加按钮,添加你要查看的对象。如:对用户XXX。2.在开始—>
一、手机上淘宝怎么查看历史价格1、打开手机,找到手机里面的微信点击进入2、在微信里面找到发现再点击发现上面的小程序3、在小程序里面搜索历史价格查询的小程序添加4、然后进入小程序之后,将淘宝的商品链接粘
一、怎样在Firefox浏览器中查看历史记录打开Firefox浏览器,单击[历史]菜单在菜单中的下部可以看到最近的浏览记录,只要单击选择其中的记录就可以打开相应的网页,如果想看到更多的记录可以单击[管