【发布时间】:2016-04-27 07:09:28
【问题描述】:
假设我有 branch 和 branch 。在我已经对file1、file2进行了几次更改。但是,我最终还对显然已修复的内容进行了重构,例如在 fileA、fileB 中。
现在我想创建一个不同的分支,将<my_feature> 中的这些更改隔离开来,让<my_updates> 只提交到文件A、文件B。
目前,我在 file1、file2、fileA 和 fileB 中有未暂存的更改。
我一直在阅读有关 git cherry-pick and git apply 的信息,但它涉及已经提交的内容。
现在这些更改都没有提交,我不知道我是否应该提交这个并挑选樱桃,或者是否有更好的处理方法。
为确保图片清晰,让我们对其进行一些视觉化处理:
我想做:
master ------------------
\--- my_feature ----/
file1
file2
但现在我有
master ------------------
my_feature ----/
file1
file2
fileA
fileB
我想在继续使用<my_feature> 之前合并它(fileA、fileB 中的更改):
master ------------------
\--- my_updates ----/
fileA
fileB
这样<my_feature> 将只包含file1、file2 中的更改。
【问题讨论】:
-
在您的分支上提交
file1和file2,然后签出master。未提交的更改将被结转。 -
这里使用poke的方法,因为它是最简单的。请注意,使用
git stash也可以,但它是通过提交来实现的。您可以自己提交并根据需要复制内容,然后也可以“取消”原始提交。这在 git 中所做的工作量与使用git stash基本相同(因为它会提交),这只是您个人对什么感到满意的问题。
标签: git git-commit cherry-pick