合并来自另一个分支的提交中的特定更改

时间:2018-06-08 11:01:56

标签: git merge commit tortoisegit cherry-pick

我想使用git将开发分支提交中的更改合并到另一个分支。我尝试了git cherry-pick,但它会导致整个文件发生变化,而不是具体的变化。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

要记住的一件事是,提交是决定已经合并""已经合并的最小单位"。因此,我们需要权衡利弊,因为如果您不创建合并关系,您可能会发生虚假的合并冲突,但如果您创建合并关系只有一次更改的分支之间,它可能会导致未来的合并无法获得其他更改。

在99%的情况下,没有创建合并关系在这里是较小的邪恶,所以我说你在--no-commit的正确轨道上。

下一步是您想要的更改。最简单的方法是使用-n(或git cherry-pick -n <commit-id> )选项:

git reset HEAD -- path/to/other/file
git checkout -- path/to/other/file

然后,目标提交的更改将暂存,但不会提交。您可以使用

删除对其他文件的更改
git reset HEAD -- path/to/file
git add -i path/to/file

如果您想要的更改与其他更改位于同一文件中,您可以取消暂存该文件,然后在&#34; interactive&#34;中重新播放该文件。模式

import { BackHandler } from "react-native";

(有关&#34;交互式添加&#34;界面的详细信息,请参阅https://git-scm.com/docs/git-add。它有多种方法可以选择要包含的更改。

完成选择性转移后,您可以提交,然后清除工作树中任何剩余的不需要的更改。