Github создает пустую ветвь

Я часами ищу в интернете и не могу найти решение этой проблемы:

Я хочу создать новую ветку GitHub, которая называется release. Эта ветка должна быть пустой ! Однако существует ветвь с x коммитами, и я не хочу иметь commit history.

Единственный метод, который я нашел, - это создать локальную ветку --orphan.

Ответ 1

Что случилось с опцией --orphan? Если вы хотите, чтобы ветка была пустой и не имела истории, это путь...

git checkout --orphan empty-branch

Затем вы можете удалить все файлы, которые вы будете иметь в промежуточной области (чтобы они не были зафиксированы):

git rm -rf .

В этот момент у вас на вашем компьютере пустая ветка.

Прежде чем вы сможете нажать на GitHub (или любой другой репозиторий Git), вам понадобится хотя бы одна фиксация, даже если на ней нет содержимого (т.е. пустой фиксации), поскольку вы не можете нажать пустую ветвь

git commit --allow-empty -m "root commit"

Наконец, надавите на пульт и откройте пиво

git push origin empty-branch

Ответ 2

--orphan хорош для создания пустой ветки локально, однако для ее продвижения или взаимодействия с другими ветвями вам понадобится коммит.

Создание нового коммита в вашей ветке-сироте не очень хорошая идея, потому что вы не сможете взаимодействовать с другими своими ветками. Т.е.

git checkout --orphan test
git commit --allow-empty -m "init test branch"
git merge master
fatal: refusing to merge unrelated histories

Вместо этого вы должны предпочесть создание новой ветки из первого коммита master. Если коммит не пустой, вы можете добавить пустой коммит перед первым, как объяснено @houtanb.

Ответ 3

Вы также можете следовать инструкциям здесь, чтобы создать пустую фиксацию в корневой части ветки master. Затем просто создайте ветвь release, где этот пустой корневой фиксатор есть.