在进行多个合并时提取正确的git日志

在进行多个合并时提取正确的git日志,git,merge,gitlab,Git,Merge,Gitlab,我们有一个git工作流,其中: 我们使用一个“项目”存储库(从“主”存储库派生),其中包含一个“项目”分支(从主分支的最新主标记克隆) 这些项目分支合并到一个开发分支中,然后克隆到一个“暂存”分支中。没有单个暂存分支,但每个开发(=每个项目)分支都会创建一个相应的暂存分支,然后在测试后将其合并到主分支中 这意味着在任何时候,都有多个登台分支和多个项目分支 现在,我们遇到了一个经常出现的问题,即当有两个暂存分支同时为不同的项目创建时,其中一个分支将在另一个分支之前发布 为了防止降级,我

我们有一个git工作流,其中:

  • 我们使用一个“项目”存储库(从“主”存储库派生),其中包含一个“项目”分支(从主分支的最新主标记克隆)

  • 这些项目分支合并到一个开发分支中,然后克隆到一个“暂存”分支中。没有单个暂存分支,但每个开发(=每个项目)分支都会创建一个相应的暂存分支,然后在测试后将其合并到主分支中

  • 这意味着在任何时候,都有多个登台分支和多个项目分支

现在,我们遇到了一个经常出现的问题,即当有两个暂存分支同时为不同的项目创建时,其中一个分支将在另一个分支之前发布

  • 为了防止降级,我们需要将staging/A合并到project/B中,以便在更新staging/B之前测试staging/A所做的更改
我们通过一个简单的合并请求(PR)来实现这一点,但这会污染project/B的日志,这一点很重要,因为我们需要计算“步骤计数”(在master base和project/B之间)。 这种将另一个阶段分支合并到项目分支中的模式是非常常见和重复的。 这意味着有多个合并到项目/B中,这些合并不是项目/B更改的一部分

是否有任何git命令/脚本只提取project/B所做的提交,而忽略登台分支所做的合并所做的更改,以正确计算真正代表project/B中所做更改的步骤数

另外,如果这个git工作流有问题,请一定要让我知道——我不是一个真正的DevOps人

编辑: 让我更清楚一点: 如果有一个名为“release-1”的分支

一旦我把这个分支合并到develop-2中

git log --oneline develop-2

因此,develope-2的日志被release-1的日志污染了。
现在,在现实生活中,有多个这样的合并到项目分支中


我想提取仅在develope-2中进行的提交(在本例中),并忽略由于来自外部分支的合并而进入的所有提交

您可能正在查找
git log
--第一个父级
选项,或者
--无合并

git log --graph --first-parent
git log --graph --first-parent --no-merges

如果您正在使用GUI,请查找具有这些名称的复选框或选项。

您可能正在查找
git log
--第一个父项
选项,也可能是
--无合并

git log --graph --first-parent
git log --graph --first-parent --no-merges

如果您使用的是GUI,请查找具有这些名称的复选框或选项。

Hi,我无法仅通过阅读您的描述来了解您的需要。您能否添加一个示例,说明当前的历史记录以及您希望达到的目标?例如,您可以复制/粘贴
git log--oneline--graph[branch1][branch2]的输出
(显然:在粘贴前编辑您不想公开的信息)@LeGEC,更改已经添加。您可以使用Tortoise Git,它有很好的UI来查看不同分支、标记等的所有更改@Araphel:好的。您可以添加
--graph
选项,复制/粘贴输出文本,而不是发布屏幕截图吗?谢谢不要发布文本图像。请将文本作为文本发布。嗨,我可以不要只看你的描述就知道你需要什么。你可以添加一个例子,说明当前的历史是什么样子,以及你想要达到什么目的吗?你可以复制/粘贴git log--oneline--graph[branch1][branch2]
的输出(显然:在粘贴之前编辑你不想公开的信息)@LeGEC,更改已经添加。您可以使用Tortoise Git,它有很好的UI来查看不同分支、标记等的所有更改。@Araphel:好的。您可以添加
--graph
选项,复制/粘贴输出的文本,而不是发布屏幕截图吗?谢谢不要发布文本图像。请将文本作为文本发布。