Git создать ветку из текущего проверенного мастера?
на сервере есть управляемая git папка, где основная ветвь извлечена, и целая куча файлов была изменена и не зафиксирована. Есть ли способ для меня зафиксировать изменения в отдельной ветке, чтобы я мог вернуться к чистой версии?
т. е. я хочу эффективно отменить все эти изменения людей, но сохранить их в другом шансе, чтобы, если этот человек хочет их изменения, они могли переключиться на эту ветку.
(Да, я знаю, что это не так, как git разработан но это моя ситуация!) Любые идеи очень ценятся.
3 ответа:
прежде всего перемещение в другую ветвь на основе текущей головки выполняется следующим образом:
git checkout -b newbranchзафиксировать все изменения (при условии отсутствия новых добавленных файлов, в противном случае
git addних):git commit -aвернитесь в главную ветвь:
git checkout masterвсе ранее незафиксированные изменения будут находиться в ветке newbranch, а master будет по-прежнему находиться в состоянии, в котором он был без этих изменений.
этот метод полезен:
git checkout -B <new_branch> <start point>где:
<new_branch>это Ваша новая ветвь (напримерmy_branch)<start point>- Это ваша отправная филиала (masterв вашем случае)-Bсоздает новую ветку, начиная с<start point>, если он уже существует, то сбросьте его (он не потерпит неудачу как-bкогда ветка уже существует)- иногда
-mможет полезно указать при переключении ветвей, это будет выполнять трехстороннее слияние между текущей ветвью, содержимым вашего рабочего дерева (полезно для сценариев).посмотреть:
man git-checkoutдля более подробной информации.