Как сохранить только изменения головы в git rebase
Я сейчас в середине длительный перебазировать пройдя через десяток коммитов. Я структурировал вещи в своем процессе разработки так, что только изменения от HEAD
Это то, что я хочу сохранить-все остальные конфликты (например, commit hash b06a1dd
) следует исключить.
есть ли способ, чтобы просто удалить все изменения, связанные с >>>>>>> b06a1dd
и сохраните изменения, которые git будет помечать <<<<<<< HEAD
одним махом, поэтому мне не нужно продолжать печатать git rebase --continue
, дело с больше конфликтов больше совершайте хэши, и только держите HEAD
изменения?
2 ответов
если вы готовы начать перебазирование (git rebase --abort
), тогда это должно сделать то, что вам нужно:
git rebase -X ours upstream
здесь upstream
- это ветвь, на которую вы перебазируетесь.
как отметил в ответ и в других местах,ours
и theirs
метки немного более запутанны для перебазирования, чем для слияния. После начала перебазироваться, git создает анонимную ветку и начинает применять совершает его. С ours
означает "сохранить изменения из текущего ветвь", что текущая ветвь будет HEAD
, которая содержит upstream
и любые изменения, уже примененные rebase
.
для полноты, это то, что я узнаю из предыдущего ответа и комментариев в текущем Q&A (кредит идет их авторам):
- если вы готовы начать все сначала и выберите ту же сторону для всех коммитов, текущий выбранный ответ
git rebase --abort
а тоgit rebase -X ours upstream
может сделать трюк. -
но я думаю, на практике вы не захотите слепо использовать либо
ours
илиtheirs
не заглядывая в каждый совершает. Вы бы хочу примите индивидуальное решение для каждого коммита, когда "в середине длинного rebase". Итак, ваши фактические варианты будут:-
использовать апстрим:
git checkout --ours path/to/a/specific/file git add path/to/a/specific/file
или еще лучше, в этом случае вы просто используете этот:
git reset HEAD path/to/a/specific/file
-
используйте свою ветку функций:
git checkout --theirs path/to/a/specific/file
или сделайте это вручную, чтобы обратиться к каждому
<<<< ... ==== ... >>>>
в вашей редактор.
-
PS:на ours
и theirs
имеют особое значение при выполнении rebase.