我已经重新组织了一个分支中的提交,然后它将被公开,导致提交的时间戳处于混合顺序。我宁愿让他们今天只有几秒钟。
显然,这些时间戳也不正确,但由于这是事情公开的时候,我更倾向于在时间上混淆历史。
那么如何告诉git在变基时创建新的时间戳?
答案 0 :(得分:104)
git rebase --ignore-date
答案 1 :(得分:25)
在我的情况下,将时间戳更改为CommitDate值,因此在gitweb中,一堆几个月的提交显示为4天之久。我找到了最后一次提交正确的日期并且做了:
$ git rebase --committer-date-is-author-date SHA
答案 2 :(得分:13)
有以下几种方法
正常变基
git rebase --ignore-date
交互式变基
git rebase -i master
git commit --amend --date=now
git push origin <branch> -f
答案 3 :(得分:2)
来自评论:
与
不兼容--interactive option
实际上...它不再与Git 2.29(2020年第四季度)不兼容:“ git rebase -i
” (man) 了解更多选项< / strong>。
兼容的选项:
--interactive
/ -i
--root
!请参见commit 6160b2e的Junio C Hamano (gitster
)(2020年8月26日)。
请参见commit 2712669前的commit ef484ad(2020年8月17日)和Rohit Ashiwal (r1walz
)(2020年7月13日)。
请参见commit a3894aa的commit 7573cec,commit e8cbe21,Phillip Wood (phillipwood
)(2020年8月17日)。
(由Junio C Hamano -- gitster
--在commit 9c31b19中合并,2020年9月3日)
rebase -i
:支持--ignore-date
原始修补程序:Rohit Ashiwal
签名人:Phillip Wood
Rebase通过两个不同的后端-'
apply
'和'merge
'实现,每个后端都支持一组不同的选项。特别是,应用后端支持由'
git am
(man)'实现的许多选项,这些选项未在合并后端中实现。
这意味着根据使用哪个后端而造成混淆,可用选项会有所不同。此修补程序将
--ignore-date
选项的支持添加到了合并后端。此选项使用当前时间作为作者日期,而不是在重写提交时重用原始作者日期。
我们注意以与应用后端相同的方式处理--ignore-date
和--committer-date-is-author-date
的组合。
并且:
rebase
:添加--reset-author-date
帮助者:Junio C Hamano
签名人:Rohit Ashiwal
先前的提交在
--ignore-date
上引入了rebase -i
标志,但是名称相当模糊,因为它并未说明是忽略作者日期还是提交者日期。
添加别名以传达确切的目的。
--reset-author-date
也:
rebase -i
:支持--committer-date-is-author-date原始修补程序:Rohit Ashiwal
签名人:Phillip Wood
此修补程序将
--committer-date-is-author-date
选项的支持添加到合并后端。
此选项使用创建新提交时将被重写的提交的作者日期作为提交者日期。
git rebase
现在包含在其man page中:
--committer-date-is-author-date
:使用当前时间作为提交者日期,而不是使用 提交的作者日期被重新确定为提交者 日期。
此选项表示--force-rebase
。
git rebase
也包含在其man page中:
--ignore-date:
此标志传递给'git am'以更改作者日期 每个重新提交的提交(请参阅
git am
)。
请注意,在2.29(上)中,“ --committer-date-is-author-date
”和“ rebase
”子命令的“ am
”选项错误地丢失了电子邮件地址,该错误已通过纠正。 Git 2.29.1(2020年第四季度)。
请参见commit 5f35edd的commit 16b0bb9,commit 56706db,Jeff King (peff
)(2020年10月23日)。
(由Junio C Hamano -- gitster
--在commit f34687d中合并,2020年10月26日)
修复损坏的电子邮件
am
:使用--committer-date-is-author-date
签名人:杰夫·金
提交e8cbe2118a(
am
:停止导出GIT_COMMITTER_DATE,
2020-08-17)重写了用于将提交者日期设置为使用fmt_ident()
而不是设置环境的代码变量并让commit_tree()
处理它。
但是它引入了两个错误:
- 我们使用作者电子邮件字符串而不是提交者电子邮件
- 在解析提交者身份时,我们使用了错误的变量来计算电子邮件的长度,从而导致该电子邮件始终为零长度的字符串
此提交同时修复了这两个问题,这使我们通过重新配置“
apply
”后端对该选项的测试成功了。
并且:
rebase
:使用--committer-date-is-author-date修复损坏的电子邮件报告人:VenomVendor
签名人:杰夫·金
提交7573cec52c(“ rebase -i:支持--committer-date-is-author-date”,2020-08-17,Git v2.29.0-rc0-merge batch #13)从
builtin/am.c
复制了提交者身份分析代码。
为此,它复制了一个错误,即我们始终将电子邮件设置为空字符串。我们在上一次提交的
git-am
中修复了该版本;此提交将修复复制的代码。