Страницы

Поиск по вопросам

суббота, 13 октября 2018 г.

Как в git создать новую ветку и продолжить в ней работать с текущего момента? [дубликат]

На данный вопрос уже ответили: Как в git выделить изменения в новую ветку? 3 ответа Я работаю в основной ветке master. С момента последнего commita есть изменения. Я не хочу комитить текущие изменения в текущую ветку. Но и терять их не хочу. Я хочу создать новую ветку, скажем test, и продолжить работать в новой ветке с текущего момента, не теряя никаких изменений. С таким расчетом, что когда я закончу в тестовой ветке, то вернусь обратно в основную (master) и солью изменения.
Как это правильно сделать?


Ответ

Берёте...
...и делаете!
Git не даст вам просто так потерять внесённые поверх коммита изменения, поэтому можете смело делать новую ветку:
git checkout -b test
Опасаться этого стоило бы, переключаясь на другую ветку, которая находится на другом коммите (скажем, при git checkout dev); Git бы одёрнул вас вот таким сообщением:
error: Your local changes to the following files would be overwritten by checkout: файл1 папка/файл2 Please, commit your changes or stash them before you can switch branches. Aborting
Запасной план
Есть stash, в котором можно разместить изменения, которые не хочется коммитить, но хочется сохранить на некоторое время. В данном случае применение стэша совершенно излишне, но может пригодиться, к примеру, когда изменения были применены не в той ветке:
git stash -u # с сохранением untracked (неотслеживаемых) файлов git checkout dev # меняем ветку на другую, скажем, уже существующую git stash pop # забираем изменения обратно и выкидываем из стэша # ^- этот прямоугольник получился случайно, честно
Изменения из стэша вполне могут конфликтовать с состоянием другой ветки, и если так выйдет, возникнет конфликт и набор изменений останется в стэше (потому что "чисто" применить их не получилось).
Stash один для всего репозитория и специфичен для отдельной локальной копии: условно говоря, он лично ваш

Комментариев нет:

Отправить комментарий