如何使用git

时间:2016-02-03 22:45:08

标签: git

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

git log <yourlasttag>..HEAD --oneline

输出类似的东西,假设我们在BUGFIX提交之前标记:

j87jbhg FEATURE: Allow users to add jam or jelly to toast
dkdj8da FEATURE: Allow users to butter toast
d8d87a7 BUGFIX: Toast was burnt

但是,我们经常使用交互式rebase(例如git rebase -i HEAD~5)压缩主题分支的提交,然后将该分支合并到我们的生产分支中,或者将其挑选出来。

交互式rebase的一个不幸的副作用是,如果你将提交压缩到第一次提交(压缩HEAD~1,HEAD~2,HEAD~3,HEAD~4,进入HEAD~5),你的新提交有一个首次提交HEAD~5的日期。这一直困扰着我,但从来没有成为问题(在git log或github上寻找提交之外)。到现在为止。

我们标记每个生产部署,因此我们希望git log <yourlasttag>..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

承诺1111111(橙汁)实际上没有部署到生产;它是交互式rebase的结果,提交HEAD~5(来自上面)最初是在提交2222222被标记并推送到生产之前提交的。

因此,当我们推向生产时,新提交是上面列出的所有功能和错误修正,正如我们所期望的那样(包括1111111)。但是,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 commit)获取我正在寻找的提交列表有哪些选择?

相关:有没有人知道如何将被压扁的日期更改为交互式rebase的时间?

1 个答案:

答案 0 :(得分:2)

我问的是错误的问题!

git log origin/production..HEAD --oneline

Viewing Unpushed Git Commits

这列出了尚未推送到生产的所有提交。