如何将分支应用于分支A并将其应用于分支B

时间:2019-07-11 11:20:43

标签: git

我在名为myfix的分支中做了一些工作来解决生产问题。问题是,我记不住我基于myfix的哪个分支,即我不知道在开始修改代码之前检查了什么。我认为这是功能/ xx,这是我们当时正在研究的内容。

他们是如何将我的修补程序投入生产的,这是非常重要的。

基本上,我在未知分支上的myfix中所做的所有更改都必须应用到master。

问题是myfix将位于包含其他内容的分支的顶部,因此我不能仅将myfix与master合并。

我猜一个选择是检出master,然后从myfix检出特定文件。这是最好的方法吗?

仅更改了3个文件。如果情况变得更糟,尽管可能会引入错误,但我可能可以手动编辑文件以添加修复程序。

1 个答案:

答案 0 :(得分:1)

使用

git checkout master
git cherry-pick --no-commit myfix

您将把myfix的最后一次提交的所有更改都引入工作树中,但尚未提交。

此时,您可以编辑任何想要的内容,然后在满意的时候提交。


或者,如果您已经知道需要从此修补程序中获取的唯一文件,并且不想进行同一提交中所做的其他更改,则可以

git checkout master
git checkout myfix -- path/to/file1 path/to/file2 path/to/file3
git add path/to/file1 path/to/file2 path/to/file3
git commit -m "Useful message"

它将在master上进行一次新提交,这3个文件与myfix分支上的分支完全相同(根据您的需要,这可能不是您想要的)。