Что именно делает git rebase -skip?

Я только что сделал git pull --rebase origin master и возник конфликт.

Во-первых, этот конфликт был в файле, который я не коснулся, и был около 10 коммитов назад. Почему это происходит?

Затем я случайно набрал git rebase --skip, и он "пропустил этот патч".

Обеспокоенный тем, что я пропустил фиксацию, я проверил новую версию ведущей ветки и сделал разницу между веткой, в которой я сделал rebase, и новой главной ветвью. Единственные изменения, которые появляются в diff, - это последняя фиксация и просмотр журнала, патч, который был "пропущен", отображается в истории фиксации.

Может ли кто-нибудь объяснить, что здесь происходит?

Ответ 1

Он делает то, что он говорит, он пропускает фиксацию. Если вы запустите rebase --abort при более позднем конфликте во время одной и той же переадресации, пропущенная фиксация также будет отменена, конечно.

Если ваше изменение уже существовало вверх, Git не сможет применить вашу фиксацию (но обычно следует пропустить ее автоматически, если патч точно такой же). Ваш собственный коммит будет пропущен, но изменение все равно будет существовать в текущем HEAD, потому что оно уже было применено вверх по потоку.

Вам действительно нужно убедиться, что вы не удалили важные изменения;) (используйте reflog, чтобы вернуться к состоянию перед переустановкой)