如何使用git合并自上次标记以来的提交

如何使用git合并自上次标记以来的提交,git,Git,我已经知道如何获取自上次标记以来的提交列表 git log <yourlasttag>..HEAD --oneline 然而,我们通常使用交互式rebase(例如git rebase-i HEAD~5)挤压主题分支的提交,然后将该分支合并到我们的生产分支中,或者将其挑选出来 交互式重基的一个不幸的副作用是,如果将提交挤压到第一次提交中(挤压头~1、头~2、头~3、头~4、头~5),则新提交的日期为头~5首次提交的日期。这一直困扰着我,但从来都不是问题(除了在git日志或github

我已经知道如何获取自上次标记以来的提交列表

git log <yourlasttag>..HEAD --oneline
然而,我们通常使用交互式rebase(例如git rebase-i HEAD~5)挤压主题分支的提交,然后将该分支合并到我们的生产分支中,或者将其挑选出来

交互式重基的一个不幸的副作用是,如果将提交挤压到第一次提交中(挤压头~1、头~2、头~3、头~4、头~5),则新提交的日期为头~5首次提交的日期。这一直困扰着我,但从来都不是问题(除了在git日志或github中查找提交之外)。直到现在

我们标记每个生产部署,因此我们希望,
git log..HEAD
(或其他一些命令)的输出包含所有尚未部署到生产的提交

因此,如果我们的历史看起来更像这样:

j87jbhg FEATURE: Allow users to add jam or jelly to toast
dkdj8da FEATURE: Allow users to butter toast
d8d87a7 BUGFIX: Toast was burnt
2222222 (tag: 2016.02.01) FEATURE: Allow users to make toast
1111111 FEATURE: Allow users to make orange juice
0000000 (tag: 2016.01.15) FEATURE: Toaster model
Commit 1111111(橙汁)尚未实际部署到生产中;这是一个交互式重基的结果,commit HEAD~5(来自上面)最初是在commit 22222被标记并推送到生产环境之前提交的

因此,当我们投入生产时,新提交就是上面列出的所有特性和错误修复,正如我们所期望的(包括1111)。但是,
git log 2016.02.01..HEAD--oneline
仍然只是输出:

j87jbhg FEATURE: Allow users to add jam or jelly to toast
dkdj8da FEATURE: Allow users to butter toast
d8d87a7 BUGFIX: Toast was burnt
这完全有道理。不过,这不是我想要的

使用命令行(不是gitk)和标志(而不是更改git提交)获取我要查找的提交列表的选项有哪些


相关报道:有人知道如何将挤压日期更改为交互式重新基准的时间吗?

我问错了问题

git log origin/production..HEAD --oneline


这列出了所有尚未投入生产的提交。

我问错了问题

git log origin/production..HEAD --oneline


列出所有尚未提交到生产的约定。< /P>代替挤压,考虑使用特征气泡。你得到了所有的好处,挤压所有的优势,保持完整的历史…很好-感谢找到它,而不是粉碎,考虑使用特征气泡。你得到了挤压的所有好处以及保留完整历史的所有好处。很好-谢谢你找到了。