Страницы

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

понедельник, 9 декабря 2019 г.

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

#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%

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

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