两个标签之间的git文件列表以及中间标签更改

时间:2018-05-24 06:57:04

标签: git

我正在尝试获取两个git标记之间更改的文件列表。这些标签也有一些其他标签。

git diff tags/v1.0.0 tags/v1.5.0 --name-only

以上命令显示这些标记之间的差异(仅限v1.5.0中的更改),并且不包括中间标记更改。我也试过

git rev-list tags/v1.5.0 ^tags/v1.0.0 --count

这将为我提供这两个标签之间的提交计数。然后

git diff tags/v1.5.0~count tags/v1.5.0 --name-only

但这给了我不正确的数据。

感谢任何帮助。提前致谢

1 个答案:

答案 0 :(得分:0)

git rev-list tags/v1.5.0 ^tags/v1.0.0 --count
     

这将为我提供这两个标签之间的提交计数。

不,它会为您提供从 tags/v1.5.0 无法从 tags/v1.0.0访问 *--*--* * <-- tags/v1.5.0 / \ / ...--o--o---------*--*--o--o--o <-- master \ o--o <-- tags/v1.0.0 的提交次数

为了说明不同之处,假设我们有一个这样的图形片段:

v1.0.0

此处,发布v1.5.0与顶部的功能气泡几乎同时创建,但随后需要进行一些修复。之后,该功能被合并到master中,从那时起创建了发布master,并且需要一次提交来修复它。 (同时*继续积累工作。)

标有星号tags/v1.5.0的提交可以从标签git diff tags/v1.5.0~count tags/v1.5.0 --name-only 到达,从标签所指向的提交处开始,然后向后工作路径(包括要素气泡)。

在这种情况下,有六个这样的提交。

~

1.5.0运算符是图形跟踪运算符。它会移回一些第一个父步骤。 master提交的第一个父项在master上,第二个父项是*上的合并提交,第三个父项是主线 - 行o。第四个父是tags/v1.0.0,其叉子通向--ancestry-path,第五个是可以从所有名称到达的提交,第六个提交沿着第一个父轴返回到零件之前这里显示的图表。

因为您的实际问题没有明确定义,所以很难说正确的方法是什么。您可能会在两个标记之间查找合并基础,然后使用tags/v1.0.0选择作为此合并基础的后代但第二个标记的祖先的提交,并检查是否可以访问这些提交中的任何一个从其他标签,如果是这样,什么合并基地沿着祖先路径线落下。请注意,从tags/v1.5.0tags/v1.0.0的直接祖先路径为空,因为annotations.js:106 Uncaught TypeError: Cannot read property 'x' of null 不是任何已加星标的提交的祖先。