如果没有新的提交,是否可以在 git 中查看谁合并了一个分支?

Is it possible in git to view who merged a branch if it was without a new commit?

用户 A 在 "master" 分支中提交 (1)。

用户 B 在 "feature" 分支中基于 (1) 提交了 (2) 和 (3)。

用户A合并(3)到master分支。

所以现在看起来像这样:

现在用户 B 似乎已经提交到 master 分支。但他没有。它看起来像这样只是因为用户 A 已合并。但是没有这次合并的记录。仅显示提交。

是否有任何记录将此提交视为由两个不同用户完成的两个不同操作(提交然后合并),而不是仅仅将它们显示为一件事?

听起来您遇到了这样一种情况:一个用户是 fast-forwarding 功能的 master 分支,并且在此过程中引入了由另一位开发人员完成的提交。没有留下任何痕迹,因此看起来是两个开发人员进行了这些提交,而实际上 fast-forward 是由一个开发人员完成的。

有一种方法可以强制合并提交,即使 fast-forward 会发生,也不需要合并提交。如果您计划将 feature 合并到 master,您可以使用 --no-ff 标志保证合并提交:

git checkout master          # switch to master
git merge --no-ff feature    # merge feature into master; force merge commit

当然,如果您使用的是 GitHub 或 Bitbucket,则此合并可能发生在存储库本身上。在这种情况下,您必须配置您的特定提供商来执行此操作。

参考: Why does git fast-forward merges by default?