#git #git_branch
This question already has answers here: Как в git выделить изменения в новую ветку? (3 ответа) Closed 3 года назад. Я работаю в основной ветке master. С момента последнего commita есть изменения. Я не хочу комитить текущие изменения в текущую ветку. Но и терять их не хочу. Я хочу создать новую ветку, скажем test, и продолжить работать в новой ветке с текущего момента, не теряя никаких изменений. С таким расчетом, что когда я закончу в тестовой ветке, то вернусь обратно в основную (master) и солью изменения. Как это правильно сделать?
Ответы
Ответ 1
Берёте... ...и делаете! 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 один для всего репозитория и специфичен для отдельной локальной копии: условно говоря, он лично ваш.Ответ 2
Если у вас все изменения в master закоммичены, то вы можете смело создавать новую ветку. В нее войдут только те изменения, которые есть в remote мастера. Когда вы вернетесь обратно в master, закомиченные изменения останутся на месте (поскольку были сохранены в local). Главное не забудьте сделать pull, если содержимое ветки test уже вольете в мастер.Ответ 3
Самый простой способ git checkout -b %branch_name%
Комментариев нет:
Отправить комментарий