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
для более подробной информации.