适用:kailash 仓库全部工作树 / 全部分支。强制。
本仓库是多工作树共享同一 .git,且本地 user.name / user.email 是「谁最后提交就是谁」。
实测事故:波波在共享 worktree 提交时,本地 config 当时是小冈,导致波波的代码被署成小冈;
而 pre-receive 校验 author ↔ 推送账号,波波用 bobo 账号推送含小冈署名的分支 → 被拒。
根因不是谁写错了,是「依赖本地 config 的 user.*」在共享 worktree 下必然串味。
--author,与你的推送账号一致。 禁止依赖本地 config 的 user.*。-c user.name=... 在本机不稳(中文名在工具 shell 引号里会被吞),一律用 git commit --author="姓名 <邮箱>"。# 普通提交
git commit --author="波波 <bobo@kailash.media>" -m "feat: ..."
# 改最近一笔的署名
git commit --amend --author="波波 <bobo@kailash.media>" --no-edit
# 批量把分支基线之后的提交重置为某人(rebase 场景,慎用)
# 注意:--reset-author 会用「当前 config」的身份,多人共享 worktree 下可能再次串味,
# 优先逐笔 --author,或 rebase 后逐笔 amend。
GIT_SEQUENCE_EDITOR=: git rebase <base> --exec 'git commit --amend --no-edit --reset-author'
| 成员 | author | 推送通道 |
|---|---|---|
| 波波 | 波波 <bobo@kailash.media> | https://bobo@doc.kailashi.cn/git/kailash.git |
| 小冈 | 小冈 <xiaogang@kailash.media> | xiaogang 通道(xiaogang@doc.kailashi.cn) |
| 小齐 | 小齐 <xiaoqi@kailash.media> | xiaoqi 通道(历史也用过 @kailashi.cn / @kailashi.media) |
| 冈子 | 冈子 <gangzi@kailash.media> | gangzi 通道 |
| 阿仁 | 阿仁 <aren@kailash.media> | aren 通道(历史也用过 @kailashi.cn) |
提交前确认--author与你要用的推送 URL 账号一致。各人账号以实际为准,发现串味立即--amend --author修正。
git log --format='%h %an <%ae> %s' -3
author 必须是本人;若发现串味,先 amend 改回再推。
每人独立 worktree + 独立分支,本地 config 各自设好,从根上消除共享 config 串味。
当前阶段(v3 提审前、尚未分工)先靠本规则守。