git - Mercurial revsets 的 git 等价物是什么?

标签 git mercurial mercurial-revsets

Mercurial 有一种特定于领域的语言,称为 revsets允许用户指定修订集。

例如,您可能想要列出尚未 merge 到分支 default 中的补丁:

hg log -r "all() - ancestors('default')"

作为一个更复杂的例子,上面的链接给出了在标记为 1.3 的修订版和标记为 1.5 的修订版之间列出变更集的示例,其中提到“错误”并影响目录 hgext 中的文件:

hg log -r "1.3::1.5 and keyword(bug) and file('hgext/*')"

revset 语言非常丰富,允许根据日期、用户名、提交消息、提交是否存在于特定远程位置等来选择变更集。

git 是否有等效的机制来查询变更集,无论是在核心程序中还是作为扩展提供?

最佳答案

要列出除默认 master 分支之外的所有提交,就像我假设第一个示例所做的那样:

git log --all --not master

要获得与第二个示例相同的结果:

git log 1.3...1.5 --grep="bug" -- hgext

关于git - Mercurial revsets 的 git 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22520751/

相关文章:

git - 为什么 git 在更改彼此相邻的行时会产生 merge 冲突?

configuration - Mercurial 别名 : "option --config may not be abbreviated" error

mercurial - 指定每个存储库的 hgrc 文件

mercurial - 如何为名称遵循模式的标签创建 revset 别名?

eclipse - Hg + Eclipse - 过滤移植变更集

git - 添加标签/标签到 git 提交

git - 如何显示分支提示或非 merge 的 Git 修订?

git - 如何获取所有远程分支, "git fetch --all"不起作用

macos - 我无法让 Mercurial 在 Mac OS X Lion 上的 Apache 下运行