但是我已经成功地将测试分支合并到了我的主服务器上
当我尝试使用git rebase -i时出现错误提示
我无法重新排序我的任何提交
这是我的git日志的结果请忽略最后一行代码
答案 0 :(得分:0)
那不是错误,也不完全是。只是告诉您,您已请求复制 no 提交,然后更新当前分支的操作,因为该操作处理了该空的提交列表中的所有零。
请记住,git rebase
通过复制提交起作用,就像git cherry-pick
那样。也就是说,git rebase
的意思是:
使用-i
将提交列表变成一系列pick
命令,并在生成的命令表上打开编辑器。这些pick
命令中的每个命令都会挑选一个原始提交,以制作新副本。在您的情况下,该列表为空,因此没有pick
命令要执行。过去,git rebase -i
只是在这种情况下失败(中止),这显然是错误的。现在git rebase -i
设置了一个noop
命令。如果删除命令表中的所有命令,则会中止重新设置。
要使列表为非空,您需要位于具有某些提交的分支上,这些提交也不在master
上。请注意,在Git中,许多提交都同时在许多分支上:我们通常给git rebase
的工作是在某些地方 move 提交分支(通常是 not master
),以便它们在其他提交之后出现,通常是master
上的 。从技术上讲这是不可能的:提交不能以任何方式进行更改,更改或移动,因此通过复制提交,重新构建基础确实有效,然后放弃原始文件,转而使用新的副本:
...--o--o--o <-- master
\
*--*--* <-- branch-A (HEAD)
成为:
*--*--* <-- branch-A (HEAD)
/
...--o--o--o <-- master
\
*--*--* [abandoned]
其中提交的第一行是复制的提交,是通过复制现在废弃的底部行来完成的,以便新的提交位于master
中的最后一个提交之后。
在重新设置基准之前,有3个仅在branch-A
上的提交和2个仅在master
上的提交。重新设置基准之后,放弃了原来的三个提交,现在只有三个branch-A
提交,而 no 提交仅master
提交:branch-A
包含 all master
所包含的提交。