我想重命名第三个最新的提交并使用
git rebase
添加5个字符,但结果完全失败。
顺序发生了变化,一些提交似乎被跳过了。
我执行命令:
git rebase -i HEAD~5
然后 vim 编辑器打开并显示一些提交,左侧带有“pick”一词。
这里已经存在一个问题 - 提交不是按时间顺序的,顺序是错误的。
它确实包括我想要更改的提交。但前两次提交是从 9 月 4 日开始的,接下来的 2 次提交是从 8 月 24 日开始的(很久以前),第五次提交(我想更改)是从 9 月 5 日开始的。
我在要更改的提交处将“pick”更改为“reword”,然后使用
wq
保存并退出。
之后编辑器不再打开让我编辑提交消息。相反,它说
"interactive rebase in progress; onto 23lkj4
last commands done (4 commands done):
pick 234lkj (some message)
reword 53k2k3(some long message)
no commands remaining.
(some more info)
The previous cherry-pick is now empty, possibly due to conflict resolution¨
(some more info)
Could not apply 53k2k3... (long commit message)
所以它没能做到“改写”。 那我就可以做
git rebase --continue.
为了说明结果如何,我在这里有一个提交示例列表,这将是执行
git log --oneline
before 变基的结果,其中最新的提交是最上面的。在每个提交的右侧,我添加了执行变基和执行 git log --oneline
之后获得的顺序。所以“1”是最上面的(最新的)
(original commit log list) resulting order after rebase
kjh23h Merge branch 'something' into 'something' gone?
23mk54 some commit with a a long commit message , from 5th september 1
13w354 some commit with a a long commit message gone?
6224nj Merged in some branch gone?
175234nj Merged in some branch 4
45234nj Merged in some branch 5
(21 more commits) 6,7,8,etc
4782hjs some commit from 24th august 2
98234jd some commit from 24th august 3
(other commits)
怎么会出错,可能是什么问题?
主要问题是您对 git 预期如何运行的理解。基本上,您应该(仔细)阅读一些有关基本操作的文档和/或教程。交互式变基非常基本,尽管不是像“git init / clone / commit / checkout”这样的最基本的操作之一
我会指出你问题中所表现出的具体误解:
”所需的参考第三次最新提交”。 怎么会出错呢?
这是一个很好的问题。答案是某些“根本性”的东西是错误的。不阅读屏幕上的说明或rebase
的手册页是基本问题。
您在这个问题上获得的反对票毫无疑问是因为您在寻求帮助之前没有做足够的事情来帮助自己。