问题标签 [git-rev-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
81719 浏览

git - Git 提交范围中的双点“..”和三点“...”有什么区别?

一些 Git 命令采用提交范围,一种有效的语法是用两个点分隔两个提交名称..,另一种语法使用三个点...

两者有什么区别?

0 投票
8 回答
31648 浏览

git - 如何列出数据库中的所有 git 对象?

有没有比获取存储库中所有对象的 SHA1 原始列表更好的方法:
ls .git/objects/??/\*

cat .git/objects/pack/*.idx | git show-index

我知道,git rev-list --all但这仅列出了由 引用的提交对象.git/refs,并且我正在寻找所有内容git-hash-object,包括由等创建的未引用对象git-mktree

0 投票
2 回答
4486 浏览

git - git-rev-list 的排序

git-rev-list 如何排序它返回的提交?

我主要指的是并发开发分支上的提交,然后合并到主分支中。提交似乎没有按日期排序,这是有道理的,因为提交可以从过去或未来的不同时间中挑选出来。

例如,这里有一些历史git-log......

这是通过 rev-list 输出的相同历史记录。

rev-list 命令如何决定是列出第一个父级还是下降到第 n 个父级的提交图中?例如,在查看 (1) 之后,rev-list 下降到第二个父级 (2)。然而,在查看 (3) 之后,它下降到第一个父级 (4)。这种行为是否明确?

0 投票
3 回答
765 浏览

git - 查找包含多个特定提交的 Git 提交

一般问题:给定一组提交,我如何找到所有这些提交作为祖先的提交列表,或者相关地,包含所有这些提交的第一个提交。

git branch --contains <commit>我可以通过查找集合中所有提交返回的分支来找到包含提交的分支(类似标签) ,但git rev-list没有--contains选项。实际上,我正在寻找一种将常规--contains参数与结合的方法,git rev-list并将输出限制为包含所有列出的提交的提交,而不是其中的任何一个(这是--contains正常工作的方式)。

具体示例:给定 commits a, b, c,我如何找到第一个在其祖先中包含所有三个提交的提交?

例如,给定下面的树,我如何找到标记为 X 的提交?

我认为我可以用 做一些魔法git rev-list,并且可能涉及<commit1>...<commit2>符号,但我无法进一步解决。

0 投票
3 回答
7577 浏览

git - 在 git 中,列出自某个标签以来的所有标签

我正在使用标签来识别发布版本并识别任务的“开发完成”提交。做一个git tag我得到一个如下的列表。

假设所有标签都指向master分支上的提交,有没有办法列出自某个标签以来的所有标签?例如,要生成包含在v0.1.2发布中的所有任务的列表——我正在寻找类似以下的内容(这不是实际命令)。

获得如下输出。

有没有办法做到这一点git tag

有没有办法做到这一点git rev-list

(或者其他一些 git 命令?)

更新

根据答案和评论,以下是我目前正在使用的。

第二次更新

新选择的答案。这正是我最初想要的。优雅得多。

0 投票
0 回答
181 浏览

git - git rev-list --all --objects 因内存不足而失败,malloc 失败

我正在尝试运行:

使用 32 位 cygwin,但它失败了:

这对应于回购历史早期提交的大型 blob 的大小。

通过使用以下技术:

重新打包 Git 存储库失败

我能够使用 64 位系统重新打包 repo 的克隆,并将其重新同步回 32 位系统,我现在可以将更新从 64 位 repo 获取到 32 位系统,但是,git rev-list - -objects --all 在 32 位 repo 上仍然失败。

有什么选项可以用来防止 git rev-list 在这个 repo 上失败?

0 投票
1 回答
306 浏览

git - 缩小 Git Repo - 数据包中的对象,而不是提交中的对象

我正在尝试缩小大约 2GB 的 Git 存储库。

我正在关注 ProGit 书中第 9 章(9.7)的“删除对象”部分:http: //git-scm.com/book/en/Git-Internals-Maintenance-and-Data-Recovery

运行git gc,然后是git verify-packandgit rev-list命令后,我发现了一个.tar大约 118MB 的文件。我根本不需要它在我的回购中。它需要永远摧毁。

但是当我试图找出哪些提交使用了该文件时,我什么也没得到:

这是否意味着该文件不在存储库历史记录中?如果是这种情况,我可以离开它还是当我这样做时它仍然会被推上去git push

如果是这种情况,我该如何摆脱它。

0 投票
1 回答
790 浏览

git - Git提交范围中的“A..B”(双点)与“--right-only A...B”(过滤的三点)?

比较Git 提交范围中的双点“..”和三点“...”有什么区别?,一个更常见的有用问题。

我想澄清以下是否产生与以下相同的提交集git log A..B

他们似乎是更迂回的方式来完成同样的事情。

最初的动机是更深入地理解这些命令的含义,其中涉及忽略已经挑选的提交:

这个问题的延伸是问为什么需要对称差异(即三点)来进行这种“单面”的樱桃挑选消除。例如,要找到 B 上的唯一提交,包括对樱桃挑选的更正,不应该做一些简单的事情

我想这是因为 git 在过滤掉所有带有A..B. (也就是说,在这个假设的命令中,git 在尝试应用挑选逻辑之前会丢弃与 A 相关的任何内容。)

0 投票
1 回答
759 浏览

git - 将 git rev-list 与 git show 结合使用

目前要审查在分支上所做的提交,我执行以下操作:

但是,这会按时间倒序列出提交。我想回顾从第一个开始到最近的提交。要按此顺序获取提交哈希,可以使用

但谁能告诉我如何将它传递给显示或 difftool?

0 投票
2 回答
163 浏览

git - 是否从特定分支合并到主分支?

我在 Git 存储库中有两个主要分支 - 开发和掌握。新功能开发发生在develop分支中,然后合并到master中进行部署。

我想确定从某个时间以来是否发生了从 develop 到 master 的合并。我什至对实际提交本身并不真正感兴趣,只是开发中的某些内容已合并到 master 中。

我努力了:

git rev-list --merges origin/develop..origin/master --since <date> | wc -l

在我知道有合并的一段时间内,但它似乎总是返回零。

更新

另外,我试图一步一步地建立它。从...开始:

git rev-list --merges origin/master --since <date>

我从开发分支和可能存在的任何修补程序分支中获得了所有合并到 master 中。只有当我添加“起源/开发”约束时,我才能得到任何结果。