git rebase --skip は具体的に何をするのでしょうか? 質問する

git rebase --skip は具体的に何をするのでしょうか? 質問する

を実行したgit pull --rebase origin masterところ、競合が発生しました。

まず、この競合は私が触れていないファイルで発生し、コミット 10 個ほど前のことでした。なぜこのようなことが起こるのでしょうか?

その後、誤って と入力してしまいgit rebase --skip、そのパッチがスキップされてしまいました。

コミットをスキップしたのではないかと心配になり、マスター ブランチの新しいバージョンをチェックアウトし、リベースを実行したブランチと新しいマスター ブランチの diff を実行しました。 diff に表示される変更は最新のコミットのみで、ログを見ると、コミット履歴に「スキップ」されたパッチが表示されます。

ここで何が起こっているのか誰か説明できますか?

ベストアンサー1

それは言う通りのことをする、スキップコミット。rebase --abort同じリベース中に後で競合が発生した場合、スキップされたコミットも当然元に戻されます。

変更がすでにアップストリームに存在する場合、Git はコミットを適用できません (ただし、パッチがまったく同じであれば、通常は自動的にスキップされます)。自分のコミットはスキップされますが、変更はアップストリームにすでに適用されているため、現在の HEAD に存在し続けます。

重要な変更を削除していないことを必ず確認してください ;) (リベース前の状態に戻すには、reflog を使用します)

おすすめ記事