0

cherry-pickメインブランチで役立ついくつかの変更があったため、トピックブランチから使用してコミットにマージしました。残念ながら、コミットによって、トピック ブランチで開始された新しいファイルも導入されたことに気付きませんでした。これは、マージ中にほとんどのファイルをステージングして追加する準備ができていることを意味しますが、「削除済み」とマークされたファイルで競合が発生します。

次の動きがわかりません。残りのコミットを保持したいのですが、後でトピック ブランチからの残りのコミットがマージされると、新しいファイルとそのすべての変更が妨げられずに取り込まれます。これは可能ですか?

次の動きは次のように考えています。

  • git rmファイルを削除し、cherry-pick を OK としてマークし、マージ時にファイルが削除されないことを願っています。
  • それをマージして無視します(ほとんどの開発者がそうするだろうと確信していますが、認めません:)
  • マージに失敗し、トピック ブランチに戻り、コミットを元に戻し、新しいファイルを追加せずに再コミットしてから、メイン ブランチに再度マージします。これよりも簡単な方法があることを願っています。

これに関するヘルプは大歓迎です。

4

3 に答える 3

1

正常にcherry-picked してその 1 つのファイルだけを失った場合は、checkoutfromHEAD^を実行して、ファイルを最新の状態に戻すことができます。

git checkout HEAD^ the/path/to/file
于 2013-10-25T05:37:14.720 に答える
1

Git book のこの章で説明されているように、コミットを分割することをお勧めします。

于 2013-10-25T05:35:53.600 に答える
1

あなたがチェリーピッキングしているコミットが十分に正気であると仮定すると(つまり、小さな変更に分割できない1つの変更)、ファイルは他のファイルの変更に必要です。そのファイルがないと作業ツリーは壊れた状態になります。マージ中にファイルを使用しないように他のコードを変更した場合は、マージ中にファイルを削除することもできます。

コミットを小さな変更に分割できる場合は、それを試すことができます。

于 2013-10-25T05:41:08.877 に答える