2012-12-09 133 views
1

我回溯了我的历史记录,以查找iOS5.1为我的应用程序崩溃的原因。我已经追踪到一次提交,但是提交有很多文件。将下一个提交的更改合并到当前提交

我想要git checkout [commit before iOS5 break],并且将提交的所有更改从iOS5(即下一个提交)合并到提交之前提交到而没有提交更改。这样,我可以简单地恢复每个文件,直到我找到了iOS 5发生变化的那个文件。

上的任何想法如何从提交中进行更改并将它们放到当前分支上,而不必提交它们?

谢谢。

回答

2

您必须创建一个分支第一:

git checkout -b fix bcd7c93 
git merge -n 8b53674 # merge without auto-commit 

您的解决方案创建:

  • a detached head:您根本无法合并,因为您的下一次提交不会被引用任何分支HEAD(因此“超然”的一部分)enced
  • 一个duplicate commit:你将无法轻松地将“fix”分支合并回主(或您的当前分支,从中发现有缺陷的提交)

的想法是能够修复的bug(修改一个或两个文件),它合并回主枝上不重复所有提交你发现是有问题的其他文件的一部分。

1

对不起,回答我的问题,但事实证明,cherry-pick有这个选项:

git checkout -f bcd7c93 
git cherry-pick -n 8b53674