Как сделать копию ветки для тестирования ребаз? - PullRequest
4 голосов
/ 29 июля 2010

Я делал это раньше, создав клон и выполнив ребаз в клоне, но я подозреваю, что мог бы сделать это безопасно в отдельной ветке.

У меня есть ветвь функций feat-x с 25 коммитами. Я бы хотел (безопасно) раздавить несколько из них вместе.

(я говорю "безопасно", потому что первые пару раз я давил, я не понял это правильно - но работал в клоне, поэтому просто выбрасывал его, пока я не понял правильное заклинание.)

Какая последовательность команд даст мне feat-x-exp, то есть копию feat-x, чтобы я мог поэкспериментировать с раздавливанием, не мешая feat-x?

1 Ответ

5 голосов
/ 29 июля 2010

Я думаю, вы хотите просто сделать:

git checkout -b feat-x-exp feat-x

Это проверяет копию feat-x, с которой вы можете поэкспериментировать. Как только вы переместились из ветви feat-x, команды перебазирования не повлияют на исходную ветку (если вы избегаете формы с двумя аргументами, которая является ярлыком для проверки перед перебазированием).

Если вы запутались, вы можете вернуться к состоянию исходной ветки с помощью:

git reset --hard feat-x

Если ваш эксперимент успешен, вы можете переместить feat-x в соответствие feat-x-exp и удалить экспериментальную ветку:

git checkout feat-x
git reset --hard feat-x-exp
git branch -d feat-x-exp
...