如何设置Git永久保持commit-date与author-date一致,求对应命令
修正存量历史提交的命令
如果需要将当前仓库所有分支、标签的历史提交的commit-date全部同步为对应author-date,执行以下命令:
git filter-branch --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"' --tag-name-filter cat -- --all
注意:该操作会重写所有提交的哈希值,若仓库已经推送至远程公共仓库,执行后需要用
git push --force --all强制推送所有分支,git push --force --tags强制推送所有标签,同时需要通知所有协作者删除本地旧仓库重新克隆,或者执行变基操作同步新的提交链。
后续新提交永久自动同步配置
要实现后续所有新提交、变基、cherry-pick操作自动保持commit-date与author-date一致,添加以下全局配置即可:
- 配置commit命令别名,提交时自动同步日期:
git config --global alias.commit '!f() { export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; git commit "$@"; }; f' - 配置rebase命令别名,变基时自动保留author-date作为commit-date:
git config --global alias.rebase 'rebase --committer-date-is-author-date' - 配置cherry-pick命令别名,拣选提交时自动同步日期:
git config --global alias.cherry-pick 'cherry-pick --committer-date-is-author-date'
配置完成后日常使用对应Git命令无需额外加参数,即可自动保持两个日期一致。
内容的提问来源于stack exchange,提问作者Shreya Rai
相关产品推荐
相关产品推荐

