Git压缩合并提交的作者、提交者及提交信息如何确定?
关于Git压缩合并(
git merge --squash --ff-only)的作者、提交者及提交信息规则 场景说明
仓库初始分支状态:
A -- B (main) \ C -- D -- E (feature_branch)
各提交作者:
- commit C -
thing1 - commit D -
thing2 - commit E -
thing3
执行git merge --squash --ff-only命令后,feature_branch的C、D、E提交被压缩为新提交F',main分支快进到F',分支状态变为:
A -- B -- F' (main)
问题解答
提交F'的作者是谁?
默认情况下,压缩提交F'的作者是执行该命令的当前用户。如果需要指定其他作者,可以在提交时通过--author参数设置,或者在Git自动打开的提交信息编辑器中手动修改作者字段。提交信息是什么?
Git会自动生成一份默认提交信息,内容包含被压缩的所有提交的标题,示例格式如下:
Squash commit of the following: [commit C的提交标题] [commit D的提交标题] [commit E的提交标题]
你可以在提交前的编辑器中修改这份信息,比如替换为更简洁的feature功能描述,符合团队的提交规范。
- 执行命令的用户会成为新压缩提交的committer,这个假设是否正确?
这个假设是正确的。提交者(committer)就是执行该压缩合并操作的用户——因为是该用户完成了将多个提交压缩并合并到main分支的操作。默认情况下作者和提交者为同一人,除非手动指定了不同的作者。
内容的提问来源于stack exchange,提问作者NFeruch - FreePalestine
相关产品推荐
相关产品推荐

