1

アプリの iOS5.1 を正確に壊した原因を見つけるために、履歴をさかのぼって調べています。単一のコミットまでたどりましたが、コミットには多くのファイルがあります。

git checkout [commit before iOS5 break]iOS5を壊したコミット(つまり、次のコミット)からのすべての変更を、変更をコミットせずにコミットの前にマージしたいと思います。そうすれば、iOS 5 を壊した変更を含むファイルが見つかるまで、各ファイルを簡単に元に戻すことができます。

コミットから変更を取得し、まだコミットせずに現在のブランチに配置する方法についてのアイデアはありますか?

ありがとう。

4

2 に答える 2

2

最初にブランチを作成する必要があります。

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

あなたのソリューションは以下を作成します:

  • a detached head : 次のコミットはどのブランチからも参照されないため、まったくマージできませんHEAD(したがって、「切り離された」部分)
  • 重複したコミット: ' fix' ブランチを master (または欠陥のあるコミットを見つけた現在のブランチ)に簡単にマージすることはできません。

アイデアは、バグ (1 つまたは 2 つのファイルが変更された) を修正し、問題があるとわかったコミットの他のすべてのファイル部分を繰り返さずにメイン ブランチにマージできるようにすることです。

于 2012-12-09T09:13:51.150 に答える
1

私自身の質問に答えて申し訳ありませんが、次のcherry-pickオプションがあることがわかりました。

git checkout -f bcd7c93
git cherry-pick -n 8b53674
于 2012-12-09T09:11:58.927 に答える