列出两个日期之间应用于 git 存储库的所有提交

2024-01-05

我需要找到两个日期之间应用于 git 存储库本地副本的所有提交。通常git--日志命令不会做我需要的事情。这是我的详细场景。假设在 8 月 20 日,我需要列出 8 月 1 日到 8 月 15 日之间应用于我的本地存储库副本的所有提交。

  1. 另一位用户在 7 月份对其本地存储库做出的提交,但我在此期间拉取并合并到我的存储库中的提交应该会出现在列表中。

  2. 在此期间另一个用户对其本地存储库所做的提交,但我做了not合并到我的存储库中,直到 8 月 15 日之后not列出这个清单。

  3. 当然,我在此期间所做的所有提交都应该在此列表中。同样,其他用户在此时间段内对其本地存储库所做的所有提交以及在此期间合并到我的本地存储库中的所有提交都应在此列表中。但这部分很简单,这就是git--日志无论如何。上面的 (1) 和 (2) 部分比较棘手。

NOTE:任何仅依赖提交日期的命令都无法做到这一点。它很可能会排除类型 (1) 的提交并包含类型 (2) 的提交。我想要的是包含类型 (1) 的提交并排除类型 (2) 的提交。


from git log --help你可以看到这个:

   --since=<date>, --after=<date>
       Show commits more recent than a specific date.

   --until=<date>, --before=<date>
       Show commits older than a specific date.

你也有--no-merges标志丢弃由于拉取而应用的提交。

所以,你可以尝试:

git log --after=<date> --before=<date> --no-merges

但你也可以尝试:

git log --graph

查看完整的提交“树”。

--EDIT

也许您真正想要的不是日期范围,而是版本范围。从联机帮助页中可以看到这一点:

   <revision range>
       Show only commits in the specified revision range. When no
       <revision range> is specified, it defaults to HEAD (i.e. the
       whole history leading to the current commit). origin..HEAD specifies all 
       the commits reachable from the current commit (i.e.  HEAD), but 
       not from origin. For a complete list of ways to spell <revision range>, 
       see the Specifying Ranges section of gitrevisions(7).

因此,您可以选择要开始范围的提交 id 和要结束范围的提交 id,可以是:

git log from_commit_id..HEAD

如果您想查看从一次提交开始到您现在所在位置的所有提交。不要忘记使用(或结合)--graph无论如何,它都会为您提供全貌的标志。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

列出两个日期之间应用于 git 存储库的所有提交 的相关文章

随机推荐