Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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 Cherry Pick与冲突_Git_Cherry Pick_Git Cherry Pick - Fatal编程技术网

Git Cherry Pick与冲突

Git Cherry Pick与冲突,git,cherry-pick,git-cherry-pick,Git,Cherry Pick,Git Cherry Pick,有两个不同的git分支。在一个例子中,开发正在进行(Branch1) 在另一个分支中,一些PoC工作正在进行(分支2)。现在,我想挑选从Branch1到Branch2的更改,以便Branch2是最新的 现在,在进行了4或5次更改之后,我遇到了一些合并冲突,我无法继续进行进一步的更改 我是否需要在继续下一个樱桃选择之前解决所有冲突,或者我是否可以以某种方式推迟冲突解决,直到我樱桃选择所有更改(并一起解决所有冲突) 此外,在这种情况下,是否建议进行樱桃拾取或分支合并?在继续之前: 安装正确的工具。

有两个不同的git分支。在一个例子中,开发正在进行(Branch1)

在另一个分支中,一些PoC工作正在进行(分支2)。现在,我想挑选从Branch1到Branch2的更改,以便Branch2是最新的

现在,在进行了4或5次更改之后,我遇到了一些合并冲突,我无法继续进行进一步的更改

我是否需要在继续下一个樱桃选择之前解决所有冲突,或者我是否可以以某种方式推迟冲突解决,直到我樱桃选择所有更改(并一起解决所有冲突)

此外,在这种情况下,是否建议进行樱桃拾取或分支合并?

在继续之前:

  • 安装正确的工具。在Linux上,我强烈建议您使用meld:

    sudo apt-get install meld
    
  • 配置合并工具:

    git config --global merge.tool meld
    
然后,按以下方式进行迭代:

git cherry-pick ....
git mergetool
git cherry-pick --continue
在继续下一步之前,我需要解决所有冲突 樱桃采摘

是的,至少使用标准git设置。当存在冲突时,您不能随意挑选

此外,在一般情况下,冲突越难解决,所以通常最好逐个解决

也就是说,您可以一次选择多个提交,这将满足您的要求。见例。例如,如果某些提交撤消了以前的提交,这将非常有用。然后,您可能希望一次性挑选所有内容,这样就不必为以后提交时撤消的更改解决冲突

此外,是否建议在这种情况下进行樱桃采摘或树枝合并 案子

通常,如果您想使一个功能分支与主开发保持最新,只需合并master->featurebranch。主要的优点是,稍后的合并功能分支->主节点将大大减少痛苦


只有在必须从要素分支中排除主控形状中的某些更改时,樱桃拾取才有用。不过,这会很痛苦,所以我会尽量避免它。

另外,为了完成@claudio所说的,当采摘樱桃时,你也可以使用


因此,您可以这样做
git cherry pick--strategy=recursive-X thethers commit
git cherry pick--strategy=recursive-X ours commit

避免这些cherry pick冲突的一种可能方法是按照从最早提交到最新提交的顺序执行cherry pick,即基于提交日期。