git branching - как сделать текущий мастер веткой, а затем вернуть его обратно к предыдущей версии? - PullRequest
4 голосов
/ 20 июля 2011

Это, вероятно, довольно просто, но я в настоящее время являюсь git noob и еще не совсем разбираюсь в модели git ветвления.

Предположим, у меня в настоящее время нет ветвей, кроме master, носо времени моего последнего коммита я внес некоторые изменения, которые я решил не сохранять (заметьте: изменения еще не зафиксированы).Я пока не хочу избавляться от этих изменений - я бы хотел поместить их в свою собственную ветку (например, experimental_stuff) и затем продолжить разработку с моего предыдущего коммита.Итак, я думаю, что следующие шаги:

  • сделать текущий мастер ветвью (git branch experimental_stuff?)
  • вернуться к предыдущей фиксации (git checkout <last_commit>?)
  • сделать эту мою новую основную ветку, чтобы дальнейшие коммиты продолжались отсюда (git ????)

Это правильный подход и какая команда git мне нужна для последней части (если есть)?

[ Примечание: это просто локальный git-репозиторий для моего единственного использования, если это что-то меняет. ]

Ответы [ 2 ]

7 голосов
/ 20 июля 2011

вы почти закончили.

Предположим, вы сделали коммит для ваших файлов разработки.Затем ..

git branch exper_stuff

git reset --hard HEAD ^ (вернитесь на один предыдущий коммит вашей основной ветки, чтобы продолжить разработку)

Предположим, вы не сделали коммит для ваших файлов разработки.Затем ... вам нужно сохранить текущие изменения во временный каталог

git stash

git checkout -b экспериментальный_stuff (создать и изменить ветку на Experiental_stuff)

git stash pop (заполнить временный каталог в экспериментальную ветку)

git checkout master (вернуться обратно к master, и на этот раз нет необходимости возвращаться к предыдущему коммиту, так как у вас нет этого коммита)

2 голосов
/ 20 июля 2011

Предположим, у меня в настоящее время нет веток как таковых

Просто чтобы исправить вас: у вас всегда есть хотя бы одна ветка в Git.Даже master - это ветка с теми же функциями, что и у других веток.И Git не обрабатывает ветку с именем master, отличную от другой ветви.Это просто соглашение, что большинство разработчиков называют свою основную ветку "master", но вам это не нужно.Вы даже можете удалить свою основную ветку и создать такие ветки, как разработка, выпуск и т. Д. Для вашего вопроса: ответ Кит Хо хорош.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...