gpt4 book ai didi

git - 列出给定提交 ID 之前的提交

转载 作者:太空狗 更新时间:2023-10-29 14:35:14 25 4
gpt4 key购买 nike

我的 repo 顶层层次结构如下所示:

/dir1
/dir2
/dir3

我在 HEADgit log --oneline --first-parent -5 -- dir1/给出如下内容:

abcb COMM-25 Fix latest
ba0f COMM-17 Some stuff
cda8 New files
db7c COMM-9 Feature merge
e20a Init smth

网络上有很多很酷的东西,比如 git log --oneline --first-parent db7c.. -- dir1/得到

abcb COMM-25 Fix latest
ba0f COMM-17 Some stuff
cda8 New files

甚至git log --oneline --first-parent db7c..ba0f -- dir1/两端限制

ba0f COMM-17 Some stuff
cda8 New files

但是,该死的,我找不到任何可以帮助输出所有提交到特定提交 ID 的东西。我需要类似 git log --oneline --first-parent ..cda8 -- dir1/ 的东西得到

cda8 New files
db7c COMM-9 Feature merge
e20a Init smth
<...>

只有 cda8哈希。 上面的最新命令当然是伪代码,在现实生活中不提供任何输出(不幸的是:))。

那么,如何在不更改 HEAD 的情况下列出特定目录中和给定提交 ID(含)之前的所有提交?

我想我可以接受修改 dir1 的内容(仅 dir1,不修改 dir2 和 dir3!),但是做 git checkout cda8 dir1/git reset cda8 dir1/对后续的 git log <...> -- dir1/ 没有任何影响输出。

请帮助,git 大师们!

最佳答案

我认为您在这里努力了,这就是阻止您看到 stash 在众目睽睽之下的解决方案的原因。

当给定 refspec 时,您要求的标准日志行为。它将记录所有提交历史从那个点可以到达*:

git log --oneline --first-parent cda8 -- dir1/

(请注意,我已经进行了您的最后一次尝试,省略了“..)应该输出:

cda8 New files
db7c COMM-9 Feature merge
e20a Init smth
...
<follows ALL the rest of commits history (but only those which have modified dir1/)>

* git 中的“reachable”应该理解为“通过递归探索给定提交的父级可达”

关于git - 列出给定提交 ID 之前的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55537185/

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