В репозитории весь проект находится в master. Как перенести его в отдельную ветку, чтобы можно было сделать merge request в master?
У меня есть задача, под которую мне выделили отдельный репозиторий. Я с самого начала не задумался о том, как буду отправлять её на ревью и делал всё в ветке master. Теперь, как я понимаю, мне нужно следующее: сделать ветку от мастера, а в мастере всё удалить. Таким образом станет возможно сделать merge request в master. В мастере нужно оставить .git и README.md.
Я верно понимаю процесс? Что-то нужно ещё?
Используется Gitlab.
Ответы (1 шт):
На основе идеи @AlexR из комментариев.
Допустим у нас есть репозиторий с тремя коммитами:
C:\temp\1>git status
On branch master
nothing to commit, working tree clean
C:\temp\1>git log
commit 8607b728c12f11dd45aef65cf79e5e6009d08e3b (HEAD -> master)
Author: A K <[email protected]>
Date: Fri May 7 17:31:44 2021 +0300
Add file B
commit a55a094c4d4f47f87d70823d1780ea5cb9831fd7
Author: A K <[email protected]>
Date: Fri May 7 17:31:21 2021 +0300
Add file A
commit 879e28c46f87c34ff4ed4099aaf5a6e5ebb5e4ab
Author: A K <[email protected]>
Date: Fri May 7 17:30:54 2021 +0300
Add empty .gitignore
C:\temp\1>
И мы хотим коммиты с файлами A и B оставить в отдельной ветке feature1.
Тогда делаем две простых операции.
Во-первых, создадим ветку feature1:
C:\ak2m\1>git checkout -b feature1
Switched to a new branch 'feature1'
C:\ak2m\1>git status
On branch feature1
nothing to commit, working tree clean
Во-вторых перемотаем master на два коммита назад:
C:\ak2m\1>git checkout master
Switched to branch 'master'
C:\ak2m\1>git reset --hard HEAD~2
HEAD is now at 879e28c Add empty .gitignore
Всё!

