Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何显示今天哪些分支合并到master中_Git_Logging - Fatal编程技术网

Git 如何显示今天哪些分支合并到master中

Git 如何显示今天哪些分支合并到master中,git,logging,Git,Logging,我知道我能做到 git branch --merged 显示合并的内容,但它只输出所有内容。是否有按日期筛选的方法?否和是,取决于您真正想问的问题 分支标签是临时的东西,可以随意创建和销毁。这是一个提交图,其中创建了一个分支,在一侧添加了两个提交(新分支),在另一侧添加了一个提交(原始分支),合并了两侧,最后添加了另一个提交。在途中的某个地方,合并的分支的名称被删除 我已经用星号*标记了实际的合并提交;其余的提交节点只是普通的o节点 注意,这里没有额外的分支标签,只有主线 o--o--o---

我知道我能做到

git branch --merged

显示合并的内容,但它只输出所有内容。是否有按日期筛选的方法?

否和是,取决于您真正想问的问题

分支标签是临时的东西,可以随意创建和销毁。这是一个提交图,其中创建了一个分支,在一侧添加了两个提交(新分支),在另一侧添加了一个提交(原始分支),合并了两侧,最后添加了另一个提交。在途中的某个地方,合并的分支的名称被删除

我已经用星号
*
标记了实际的合并提交;其余的提交节点只是普通的
o
节点

注意,这里没有额外的分支标签,只有主线

o--o--o---*--o   <-- mainline
    \    /
     o--o
图形现在完全相同,但我们添加了一个名为
aux
的分支标签:

o--o--o---*--o   <-- mainline
    \    /
     o--o        <-- aux
给予:

     ............<-- newbranch
    .
o--o--o---*--o   <-- mainline
    \    /
     o--o        <-- aux
现在,
*
提交不再是标记为
aux
的提交的直接后代。但是,我们可以确定
*
是标记为
aux
的提交的祖先的直接后代。但是我们不能(没有额外的帮助)重建这样一个事实:
aux~1
过去被命名为
zorg
,而
zorg
被合并到
mainline
,而
aux
不再合并到
mainline

所以,你需要自己回答的问题是,在这些分支标签名称中放入多少库存,这些库存可以随意创建和移除;以及是否查找合并提交并将其与分支名称所指向的提交进行比较;然后询问提交上的两个日期中的一个是否足以作为过滤器

有两个日期,“作者”和“提交人”,以及两个用户名和电子邮件地址。您可能想要提交者日期,尽管这两个日期通常是相同的,而且对于合并,有不同日期的情况尤其罕见。另外,请注意,您可能需要考虑时区(取决于您自己如何进行“IsIt today”测试)


如何获得提交日期 对于
git branch--merged
声明合并到目标分支中的每个分支b(让我们称为目标t)

  • 我们知道名称b指向的提交是t指向的提交的祖先。使用
    git rev parse
    获取每个b的原始SHA-1
  • 使用
    git rev list--mergest
    ,我们可以找到作为t的祖先的合并提交的修订
  • 对于每个提取的SHA-1,查看其所有父提交ID(您可以让
    git rev list
    随提交一起生成这些ID;请参见
    --parents
  • 如果父级与任一分支b的ID匹配,则具有将分支b合并到t的合并提交。所以检查合并提交的日期。在任何情况下,从日期检查所需的项目列表中删除SHA-1 for b
  • 重复上述操作,直到所有分支
    b
    的所有SHA-1都用完,或者您的合并用完

    $ git branch newbranch mainline~3
    
         ............<-- newbranch
        .
    o--o--o---*--o   <-- mainline
        \    /
         o--o        <-- aux
    
    o--o--o---*--o   <-- mainline
        \    /
         o--o--o     <-- aux