Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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 如果我在两个中间有合并的提交,会发生什么?_Git - Fatal编程技术网

Git 如果我在两个中间有合并的提交,会发生什么?

Git 如果我在两个中间有合并的提交,会发生什么?,git,Git,我有一个分支,它有一些像这样的承诺 1.5 1.4 1.3 2 <--- at this point I performed a ```merge otherbranch``` 1.2 1.1 然后我想将我对1.1的提交压缩为一次提交。假设“2”已与master合并,然后尝试将分支合并到master会发生什么情况?没有什么特别的。合并提交只是一个提交(有多个父级,但这只是表面上的区别)。如果您合并回master,git仍然只需找到一个共同的祖先并执行通常的合并操作。git不关

我有一个分支,它有一些像这样的承诺

1.5
1.4
1.3
2      <---  at this point I performed a ```merge otherbranch```
1.2
1.1

然后我想将我对1.1的提交压缩为一次提交。假设“2”已与master合并,然后尝试将分支合并到master会发生什么情况?

没有什么特别的。合并提交只是一个提交(有多个父级,但这只是表面上的区别)。如果您合并回master,git仍然只需找到一个共同的祖先并执行通常的合并操作。git不关心合并中涉及的3个提交来自何处


换句话说,这取决于在两个合并父级中更改了哪些文件(或者更确切地说,更改了哪些行中的文件)。如果它们重叠=>按照通常的方式冲突。如果没有,则=>没有冲突。

将repo克隆到一个新文件夹,然后尝试查看。值得注意的是,
git-rebase
通常会完全忽略rebase过程中的合并提交。在本例中,这正是OP想要的(现在跳过合并,在rebase完成复制其他提交后重新进行合并)。
git rebase -i 1.1