上下文:我有一个实验分支crazy-idea
,我在一个专门的子目录中做了一些疯狂的事情madness/{src,docs}
。大量的提交,带有注释、图片、hacky 脚本来创建情节。现在我已经完全理解了我在做什么,是时候src/
通过添加新功能和更改现有功能来编辑实际的源文件了。
由于混乱crazy-idea
会使 master 的历史变得混乱,good-idea
因此创建了一个新分支来将更改合并src/
到 master 中。Convince 建议我更改src/
仍然存在的文件crazy-idea
,然后从内部挑选提交good-idea
。
现在我的问题:鉴于good-idea
已合并到 master 中,并且在此事件之后在 master 中完成了一些提交。当我回去crazy-idea
进一步解决我的想法的其他方面时,src/
在 rebase 到 master 时会遇到麻烦吗?
另一种方法是单独留src/
在内部crazy-idea
,复制子目录并以这种方式查看我的笔记,同时直接在good-idea
.
大家有什么建议更聪明的吗?
编辑好吧,正如预期的那样,我在
git rebase master
在crazy-idea
. 将来我只会在一个分支中引入更改,并且只有在我知道它或多或少被放弃时才使用樱桃采摘。
编辑我解决了我的情况如下:有 N 次提交,在src/
. 可以说最后一个src/
不变的提交有消息'foobar'。变基失败后:
$ git rebase --abort
$ git reset --hard HEAD^
HEAD is now at ...
# more hard resets, I think actually N
HEAD is now at ... foobar
$ git rebase master
First, rewinding head to replay your work on top of it...
Applying ..
...
完毕。这显然不像我希望的那样直截了当,但也不算太糟糕。我想我会走这条路,而不是抄袭madness/
。