有什么方法可以检查哪些提交在特定的一天被合并到一个分支吗



我有一个master分支和另一个名为release/system2的分支。我有几次提交被推送到master分支,两天前,我进行了合并以发布/system2。之后,由于master分支中最新代码中的一些问题,system2破坏了系统。有没有什么方法可以检查两天前哪些提交被合并到release/system2分支中,而忽略在特定日期之前合并的提交?

注意,我认为你问的问题并不完全正确:

有什么方法可以检查两天前将哪些提交合并到release/system2分支中吗

根据您的描述,由于您已经知道是哪个合并导致了问题,我认为您不关心当天可能发生的其他合并(无论是在合并之前还是之后(。我怀疑您真正想要的是隔离在特定合并期间合并的提交。因此,让我们将master合并为release/system2创建的合并提交ID称为提交M

通过该合并带入release/system2的所有提交都可以用标识

git log M^1..M

也许同样有助于识别问题文件的是这两个提交的差异(合并提交和合并提交的父级1(。

注意:这假设第一个父级实际上是合并前的release/system2的早期版本。通常情况下是这样,但也有可能是向后的,例如,如果合并有必须解决的冲突,如果用于解决这些冲突的临时分支从master开始并在release/system2中合并,而不是相反,然后如果使用快进合并将该临时分支合并到release/system2中。如果您在这种情况下,请使用M^2而不是M^1

附带说明:如果您确实想知道24小时内进入分支的每一次提交,您可以将日志命令更改为git log X..Y,其中X是您知道的分支上的最后一次提交是好的,而Y是您确定有问题的第一次提交。我的理解是,你已经知道这一点,X=M^1和Y=M。

按日期范围检查所有数字日志:

git log --pretty=format:"%ad - %an: %s" --after="2016-01-31" --until="2023-03-10"

结果:

Mon Jul 25 22:38:56 2022 +0500 - zakk: implemented mongo altas
Sun Jul 24 23:53:57 2022 +0500 - zakk: implemented mongodb
Sat Jul 23 18:30:32 2022 +0500 - zakk: applied css
Thu Jul 21 21:29:22 2022 +0500 - zakk: fisrt commit

通过格式化日期来检查git日志:

$ git log --pretty=format:"%h - %an, %ar : %s"

结果:

86d00ca - zakk, 3 days ago : implemented mongo altas
987cdb5 - zakk, 4 days ago : implemented mongodb
8f9240b - zakk, 5 days ago : applied css
10f1e4e - zakk, 7 days ago : fisrt commit

注意:这将打印包括commitsmerges在内的所有日志

最新更新