1

У меня есть настроенный репозиторий Git. Этот репозиторий имеет почти 700 коммитов, но все они находятся в master ветке. Я хотел бы использовать подход, при котором я откатываю эту master ветвь (этот откат включает примерно 50 коммитов) до более ранней точки, чтобы она оставалась там, и начиная с этой точки, разветвляют все последующие коммиты в отдельную ветку.

Графическое объяснение

Текущее состояние:

|-.---.---.---.---.---.---.---.---+ master
 aaa bbb ccc ddd eee fff ggg hhh  HEAD

Желаемое состояние:

|-.---.---.--\-|  master
 aaa bbb ccc  \
               \
                \.---.---.---.---.---+ seperate-branch
                ddd eee fff ggg hhh  HEAD

Так что master ветвь откатывается до коммита ccc и каждый коммит с этой точки (ddd и далее) перемещается в seperate-branch .

Я довольно новичок в Git, но дошел до уровня подмастерьев, но все же это продвинутое использование выше моего уровня. Я использую Ubuntu 11.04 в качестве моей системы. Хранилище (кроме того, что хранится локально) имеет remote настройку на GitHub (если это имеет какое-то значение).

1 ответ1

1

Вам нужно знать коммит, на который вы хотите откатиться, я называю это SHA1

git checkout -b seperate-branch
git checkout master
git reset SHA1 --hard

И вы сделали.

Чтобы вставить его на GitHub, вам нужно будет сделать

git push --force origin master

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .