gpt4 book ai didi

git - 如果我通过 git rebase --interactive 拆分提交,如何保留时间戳?

转载 作者:太空狗 更新时间:2023-10-29 12:59:13 24 4
gpt4 key购买 nike

如果我用

git rebase --interactive

并设置一行为“编辑”,我可以说

git reset HEAD^
git add -p
git commit -m "First part."
git commit -a -m "Second part."

换句话说,我拆分了一个提交。不幸的是,这会为两个新提交创建当前时间戳,这让历史看起来很有趣。有没有一种方法可以让新提交共享它拆分的提交的时间戳?

最佳答案

如果您使用的是最新版本的 Git,则在交互式 rebase 期间当前正在编辑的提交的 SHA1 似乎存储在名为 .git/rebase-merge/amend 的文件中.

此信息可以与git commit -c <commit>/--reedit-message=<commit>结合在编辑器中输入新消息并保留原始作者时间戳。


综合考虑

git rebase --interactive , 标记您要编辑提交,然后

git reset HEAD^
git add -p
git commit -c $(cat .git/rebase-merge/amend)

# 1. edit commit message to say "first part" (editor seeded with original message)
# 2. save and quit

git commit -a -c $(cat .git/rebase-merge/amend)

# 1. edit commit message to say "second part" (editor seeded with original message)
# 2. save and quit

注意:如果您尝试以可移植方式或在脚本中执行此操作,则应使用 $(git rev-parse --git-dir)而不是 .git .

(感谢@torek 的提醒。)

关于git - 如果我通过 git rebase --interactive 拆分提交,如何保留时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22806430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com