You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何复制Git提交的作者与日期但不复制提交信息?

解决方案:拆分提交后保留原作者与日期,自定义提交信息

核心方法:直接指定作者和日期

不用依赖git commit -c/-C带来的提交信息干扰,直接提取原提交的作者与日期,在提交或修改提交时指定即可。

步骤1:获取原提交哈希

在交互式变基暂停后,原提交的哈希可以通过git rebase --show-current-patch查看,或者提前记好变基前的原提交哈希(记为OLD_COMMIT)。

方法一:创建新提交时直接应用原作者与日期

当你用git add -p暂存好拆分后的内容后,执行以下命令创建提交:

git commit --author="$(git log -1 --format="%an <%ae>" OLD_COMMIT)" --date="$(git log -1 --format="%ci" OLD_COMMIT)"

执行后会打开编辑器让你输入自定义的提交信息,完全不会带入原提交的内容,同时作者和日期会自动设置为原提交的信息。

方法二:修改已创建的提交(作者为自己的情况)

如果已经创建了提交,想要修改它的作者和日期但保留现有提交信息,执行:

git commit --amend --no-edit --author="$(git log -1 --format="%an <%ae>" OLD_COMMIT)" --date="$(git log -1 --format="%ci" OLD_COMMIT)"

--no-edit参数会跳过编辑器,直接保留当前提交的信息,只更新作者和日期。

进阶:配置Git别名简化操作

为了日常重复使用和方便团队成员上手,可以在Git配置文件(~/.gitconfig或项目内的.git/config)中添加以下别名:

[alias]
    # 创建新提交时使用指定提交的作者和日期
    commit-as = !f() { git commit --author="$(git log -1 --format="%an <%ae>" "$1")" --date="$(git log -1 --format="%ci" "$1")"; }; f
    # 修改现有提交为指定提交的作者和日期,保留原提交信息
    amend-as = !f() { git commit --amend --no-edit --author="$(git log -1 --format="%an <%ae>" "$1")" --date="$(git log -1 --format="%ci" "$1")"; }; f

配置完成后,使用起来会非常简单:

  • 创建新提交:git commit-as OLD_COMMIT
  • 修改已提交:git amend-as OLD_COMMIT

内容的提问来源于stack exchange,提问作者donquixote

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 09:01:24