git - Git log rev range master 在 master 和 branch 之间给出不同的结果
问题描述
我在一个发布分支上,在那里我应用了来自master(主要开发)的精选提交。
我想检查是否已经复制了一些旧的提交,所以我开始使用git log
并grep
找到其中一个提交哈希。
在分支上,我通常将那里的最新提交与master进行比较:
git log --oneline -20
和
git log --oneline -20 master
但是现在我想检查一系列提交,经过一些试验和错误,我最终使用了:
git log --oneline <myhash>~..HEAD master
其中,当master被签出时,会给出预期的结果 - 从<myhash>
(包括)到 master 的最新提交列表。
但是,如果在我在不同的分支上运行时,相同的命令会产生不同的结果(实际上它似乎给出了从分支开始到最新的所有提交):为什么?
解决方案
如果要查看从特定其他提交开始的分支上的所有提交,请使用以下命令:
git log --oneline start..branch
start
开始提交在哪里branch
,最终提交在哪里。Git 将显示所有可访问的提交branch
并排除那些可访问的提交start
(相同的行为通过: 实现git log ^start branch
,即“未启动”和“分支”)
当您这样做时,您将获得 start和start..HEAD master
当前提交/分支之间的所有提交以及所有可从. 在这种情况下,您实际上指定了 3 个提交:、和. 然后,Git 将遍历图表,为您提供结果:所有可从(当前提交/分支)访问的提交,所有可从 访问的提交,但排除所有可从的提交master
^start
HEAD
master
HEAD
master
start
推荐阅读
- python - Pytorch 不使用 cuda 设备
- angularjs - Possible to pass along a ngclick value to a function?
- mysql - 在 Glassfish 5 中配置 Oracle MySQL 云服务
- javascript - 如何根据 Javascript 变量设置网页上图像的位置?
- angular - 我可以停止 forEach 直到我通过 promise-then 从服务器获取数据吗?
- angular - 角度5下拉保留值
- javascript - Javascript JSON.stringify 返回 []
- swift - Swift XMLParser // 根据元素和属性选择节点
- wordpress - 如何在 WordPress 中创建自定义日历?
- r - 在图表上标记特定点