【问题标题】:Restricting output of "git branch" to certain time period将“git分支”的输出限制在某个时间段内
【发布时间】:2015-12-02 13:15:05
【问题描述】:

我正在寻找将git branch 的输出限制在特定时间段内的选项。比如说,我想要在过去两个月内仍然活跃的所有非合并分支。我可以得到所有不容易与

合并的分支
git branch -r --no-merged origin/master 

但是我将如何继续按上次提交的年龄过滤这些?

【问题讨论】:

    标签: git


    【解决方案1】:

    我们还可以建立其他几个答案:

    第二个包含一个很好的咒语。子命令基本上就是你目前所拥有的,然后for-each-ref 对分支进行排序和格式化。

    git for-each-ref \
      --sort=-committerdate \
      --format="%(committerdate:short) %(refname:short)" \
      $(git branch -r --no-merged origin/master | sed -e 's#^ *#refs/remotes/#')
    
    2015-11-12 origin/something
    2015-10-02 origin/another_thing
    2015-10-01 origin/so_many_things
    2015-09-30 origin/an_older_thing
    2014-09-14 origin/a_really_old_thing
    

    从那里,您可以过滤最近 2 个月的更改。 this question 提供了一个不错的 awk 解决方案:

    ... | awk '$0 > "2015-10-01"'
    

    然后我们不必每次都弄清楚 2 个月前是什么,date 可以help us out

    date --date='-2 months' +'%Y-%m-%d'
    2015-10-01
    

    所以,总的来说,我们有:

    git for-each-ref \
      --sort=-committerdate \
      --format="%(committerdate:short) %(refname:short)" \
      $(git branch -r --no-merged origin/master | sed -e 's#^ *#refs/remotes/#') |\
    awk "\$0 > \"$(date --date='-2 months' +'%Y-%m-%d')\""
    
    2015-11-12 origin/something
    2015-10-02 origin/another_thing
    2015-10-01 origin/so_many_things
    

    【讨论】:

    • 不错的一个。我还找到了其他答案,但我是大多数命令行工具的大胖子,所以不知道如何扩展它们;)
    猜你喜欢
    • 2021-12-25
    • 2020-04-16
    • 2016-11-06
    • 2014-06-27
    • 2012-10-17
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多