Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git rebase:合并非后续提交_Git_Git Rebase - Fatal编程技术网

Git rebase:合并非后续提交

Git rebase:合并非后续提交,git,git-rebase,Git,Git Rebase,到目前为止,我知道有一种很好的方法可以通过使用“git rebase--interactive”组合提交和更改提交消息 有下列情形的: $ git rebase --interactive HEAD^^^^ pick 5b7c140 commitA pick 40ffd7c commitB pick 5e7647d commitC pick 78bea2d commitD Rebase [...] 是否也有可能处理以下要求: 将commitA和commitC、commitB和commitD组

到目前为止,我知道有一种很好的方法可以通过使用“git rebase--interactive”组合提交和更改提交消息

有下列情形的:

$ git rebase --interactive HEAD^^^^
pick 5b7c140 commitA
pick 40ffd7c commitB
pick 5e7647d commitC
pick 78bea2d commitD

Rebase [...]
是否也有可能处理以下要求:


将commitA和commitC、commitB和commitD组合到新的提交cAC和cBD?

这是可能的-您还可以使用交互式重新基址重新安排提交顺序:

pick 5b7c140 commitA
squash 5e7647d commitC
pick 40ffd7c commitB
squash 78bea2d commitD

两者之间的区别在于
squash
允许您编辑新提交的提交消息,而
fixup
仅丢弃第二条提交消息,将前面的
pick
提交消息保留在组合提交的位置。(如果编辑器启动得足够快,那么只要选择
squash
就可以很好地查看提交消息,即使您认为可能不需要使用
fixup
commit的部分消息。)


如果您的
commitB
commitC
更改了文件的同一部分,则可能会发生重设基础冲突。通常,这些文件可以很容易地进行分类。

在我的例子中:关于这些提交,没有冲突的文件。Git太棒了,我想我必须保持提交顺序。非常感谢!:)
pick 5b7c140 commitA
fixup 5e7647d commitC
pick 40ffd7c commitB
fixup 78bea2d commitD