git - 查找给定提交的所有直接后代

标签 git git-rev-list

<分区>

我如何找到所有以给定提交作为父提交的提交?

例如,如果我有这个 Git 提交图,

   G   H   I   J
    \ /     \ /
     D   E   F
      \  |  / \
       \ | /   |
        \|/    |
         B     C
          \   /
           \ /
            A

我想获取 B 的所有直接后代的列表:DEF.

最佳答案

你可以使用 git rev-list --parents并使用 grep 过滤 parent 的 child 和 awk

git rev-list --all --parents | grep "^.\{40\}.*<PARENT_SHA1>.*" | awk '{print $1}'

替换<PARENT_SHA1>用你的 B 的 sha-1 散列提交。

关于git - 查找给定提交的所有直接后代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27960605/

相关文章:

git - 您如何称呼制作 fork 的原始存储库?

git - 对 git rev-list 的困惑

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

git - "git rev-list origin..HEAD"应该返回什么?

git - 如何在git中找到两个提交的最老的共同后代?

javascript - Bundler for javascript,或者如何源代码控制外部 javascript 文件

eclipse - EGit "synchronize workspace"不会将 merge 冲突标记为已解决

git - git 等同于 p 4's "...”模式是什么?

git 仅提交文件的时间戳修改

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