为什么我的git interactive rebase在上一次提交消息时发生更改,然后在推送时显示所有最新的内容?
我推了推我的最新变化为什么我的git interactive rebase在上一次提交消息时发生更改,然后在推送时显示所有最新的内容?,git,github,rebase,git-push,git-interactive-rebase,Git,Github,Rebase,Git Push,Git Interactive Rebase,我推了推我的最新变化 git push origin master 然后我用一个交互式的重基修改了提交消息,即 git rebase -i HEAD~5 并在上次提交时更改了消息 这已成功保存,但当我执行git push origin master时,它只会说所有内容都是最新的 现在git历史没有显示实际发生的措辞变化 但是,当我执行一个git commit--amend-m“msg”然后尝试推送更改时,“看到了”。在交互式重新基址期间,我更改了提交消息。。。但我没有将第一列(“操作”)从p
git push origin master
然后我用一个交互式的重基修改了提交消息,即
git rebase -i HEAD~5
并在上次提交时更改了消息
这已成功保存,但当我执行git push origin master
时,它只会说所有内容都是最新的
现在git历史没有显示实际发生的措辞变化
但是,当我执行一个git commit--amend-m“msg”然后尝试推送更改时,“看到了”。在交互式重新基址期间,我更改了提交消息。。。但我没有将第一列(“操作”)从
pick
更改为reword
(简称r
)
这样做可以正确应用更改。因为上次提交的提交哈希值不会更改。 您必须更改上次提交的提交哈希,以便服务器知道您已进行了更改 在执行交互式重新基线时,可以使用reword或edit命令。或者使用commit--amend 然后在我推的时候展示所有最新的东西 一种可能的解释,如Git 2.18(2018年第2季度)所示:在“
rebase-i
”会话期间,该代码可能会为稍后的“pick”创建的提交提供较旧的时间戳,而不是较早的“reword
”,该时间戳已被更正
参见(2018年4月18日)作者。(于2018年5月8日合并)
sequencer
:在提交之前重置提交者日期
现在,sequencer在提交消息时无需分叉即可提交
未编辑所有拾取的提交都具有相同的提交者
日期。如果一个提交被重写,它的提交日期将是一个更晚的时间 因为它是通过运行单独的“git commit”实例创建的 如果重新编写的提交之后有进一步的选择,则这些选择将在以后提交 提交日期将早于重新编写的提交日期。这是 由git缓存导致,
git\u提交人\u日期
为
未设置。在进程中生成提交之前重置缓存的日期
正如交互式rebase待办事项列表(启动rebase时在编辑器中打开的文件)中所述,该文件中的消息仅用于说明/导航目的。所有实际的更改都发生在您保存文件之后。这里的推理是合乎逻辑的,但是缺少了一些东西。运行
git commit--amend
确实会更改最近提交的哈希值,但是git push
仍然显示所有内容都是最新的
。