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