gpt4 book ai didi

git - 如何简化 git log 以仅显示某些提交及其 merge 基础?

转载 作者:行者123 更新时间:2023-12-05 06:38:22 25 4
gpt4 key购买 nike

例如,如果我这样做:

git log --oneline --graph --decorate master branch dcfadf1

我看到所有提交:

* e8599bb (HEAD -> branch) branch5
* 2fe1c92 branch4
| * f083d02 (master) master5
| * d33bf64 master4
|/
* a286c74 master3
* dcfadf1 master2
* 6f58634 master1

但是,我只想看到:

* e8599bb (HEAD -> branch) branch5
| * f083d02 (master) master5
|/
* a286c74 master3
* dcfadf1 master2

更好地理解这些特定提交之间的关系。

为什么这些提交中的每一个都应该出现:

  • e8599bb(branch)、f083d02(master)和dcfadf1:在命令行中给出
  • a286c74: merge 命令行中给出的两个提交(branchmaster)的基础(最近的共同祖先)。

我不能使用--simplify-by-decoration,因为我的实际 repo 有很多我不关心的分支,此外它默认删除 merge 基础:http://git.661346.n2.nabble.com/quot-git-log-simplify-by-decoration-quot-but-including-branch-amp-merge-points-td6825766.html

这是对应于上述 git log 命令的测试 repo:https://github.com/cirosantilli/test-so-46270360

git clone https://github.com/cirosantilli/test-so-46270360
cd test-so-46270360
git checkout master
git checkout -

最佳答案

如评论中所述,如果您打算查看彼此不一定相关的提交,则 --graph 毫无意义。因此,我建议您放弃 --graph,这样您就可以使用 --no-walk

这里有git log--no-walk文档供引用:

Only show the given commits, but do not traverse their ancestors. This has no effect if a range is specified. If the argument unsorted is given, the commits are shown in the order they were given on the command line. Otherwise (if sorted or no argument was given), the commits are shown in reverse chronological order by commit time. Cannot be combined with --graph.

所以对于你的例子,我会使用:

git log --oneline --no-walk --decorate master branch dcfadf1

关于git - 如何简化 git log 以仅显示某些提交及其 merge 基础?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46341988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com