我正在追溯我的历史记录,以找到我的应用程序究竟打破iOS5.1的原因。我已将其跟踪到单个提交,但提交有许多文件。
我想git checkout [commit before iOS5 break]
,并且在没有提交更改之前,将破坏iOS5(即下一次提交)的提交中的所有更改合并到提交中。这样我就可以简单地还原每个文件,直到找到具有破坏iOS 5的更改的文件。
对如何从提交中获取更改并将它们放在我当前的分支上而不提交它们的任何想法?
感谢。
答案 0 :(得分:2)
您必须先创建分支:
git checkout -b fix bcd7c93
git merge -n 8b53674 # merge without auto-commit
您的解决方案会创建:
HEAD
引用(因此“分离”部分)fix
”分支合并回master(或您发现有缺陷提交的当前分支)这个想法是能够修复错误(修改了一个或两个文件)并将其合并回主分支而不重复所有你发现有问题的提交的其他文件部分
答案 1 :(得分:1)
很抱歉回答我自己的问题,但事实证明cherry-pick
有这个选项:
git checkout -f bcd7c93
git cherry-pick -n 8b53674