You need to know the commit you want to rollback to, I'm calling it SHA1
git checkout -b seperate-branch git checkout master git reset SHA1 --hard
And you're done.
To push it on GitHub, you will need to do
git push --force origin master
У меня есть настроенный репозиторий 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 (если это имеет какое-то значение).
You need to know the commit you want to rollback to, I'm calling it SHA1
git checkout -b seperate-branch git checkout master git reset SHA1 --hard
And you're done.
To push it on GitHub, you will need to do
git push --force origin master