1

上下文:我有一个实验分支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/

4

1 回答 1

2

Git 不应该有太多麻烦来协调樱桃选择。变基时,Git 将忽略任何引入了已在目标分支上引入的更改的提交(甚至是提交差异中的大块)。

于 2011-08-28T18:17:26.953 回答