我在名为myfix的分支中做了一些工作来解决生产问题。问题是,我记不住我基于myfix的哪个分支,即我不知道在开始修改代码之前检查了什么。我认为这是功能/ xx,这是我们当时正在研究的内容。
他们是如何将我的修补程序投入生产的,这是非常重要的。
基本上,我在未知分支上的myfix中所做的所有更改都必须应用到master。
问题是myfix将位于包含其他内容的分支的顶部,因此我不能仅将myfix与master合并。
我猜一个选择是检出master,然后从myfix检出特定文件。这是最好的方法吗?
仅更改了3个文件。如果情况变得更糟,尽管可能会引入错误,但我可能可以手动编辑文件以添加修复程序。
答案 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
分支上的分支完全相同(根据您的需要,这可能不是您想要的)。