を実行したgit pull --rebase origin master
ところ、競合が発生しました。
まず、この競合は私が触れていないファイルで発生し、コミット 10 個ほど前のことでした。なぜこのようなことが起こるのでしょうか?
その後、誤って と入力してしまいgit rebase --skip
、そのパッチがスキップされてしまいました。
コミットをスキップしたのではないかと心配になり、マスター ブランチの新しいバージョンをチェックアウトし、リベースを実行したブランチと新しいマスター ブランチの diff を実行しました。 diff に表示される変更は最新のコミットのみで、ログを見ると、コミット履歴に「スキップ」されたパッチが表示されます。
ここで何が起こっているのか誰か説明できますか?
ベストアンサー1
それは言う通りのことをする、スキップコミット。rebase --abort
同じリベース中に後で競合が発生した場合、スキップされたコミットも当然元に戻されます。
変更がすでにアップストリームに存在する場合、Git はコミットを適用できません (ただし、パッチがまったく同じであれば、通常は自動的にスキップされます)。自分のコミットはスキップされますが、変更はアップストリームにすでに適用されているため、現在の HEAD に存在し続けます。
重要な変更を削除していないことを必ず確認してください ;) (リベース前の状態に戻すには、reflog を使用します)