gpt4 book ai didi

git log --before ="4 months"显示 3 周前提交的分支。我究竟做错了什么?

转载 作者:行者123 更新时间:2023-12-04 16:18:22 26 4
gpt4 key购买 nike

所以我有这个片段,我想用它来过滤掉没有特定前缀并且在 3 个月内没有收到任何提交的分支,以便我以后可以从我们的 Remote 中删除它们。

 for k in $(git branch -r | awk -Forigin !'/\/Prefix1\/|\/prefix2\//'); do
if [ "$(git log -1 --before="3 month" $k)" ]; then
echo "$(git log -1 --pretty=format:"%ci, %cr, " $k) $k";
fi;
done

目前的问题是,当我运行它时,我看到在 3 周前、5 个月前、2 个月前、1 个月前等收到提交的分支,我不知道为什么。

但是如果我只运行: git log --before="4 month"--pretty=format:"%ci, %cr, "它按预期工作。

任何人都可以给我任何指导吗?

最佳答案

-1git log -1 [filters] $k将要 :

  • 展开历史git log [filters] $k
  • 将此历史记录限制在第一行

  • 因此,如果一个分支在其历史记录中有 3 个月的提交(我猜:你的任何一个分支都有), git log -1 --before="3 month" $k将始终显示 1 行——历史上第一个超过 3 个月的提交。

    您的领导 if [ ... ]条件永远为真。

    要解决此问题,您可以限制提交范围以仅选择每个分支的前导提交:
    git log --before="3month" $k^..$k

    关于git log --before ="4 months"显示 3 周前提交的分支。我究竟做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61585601/

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