Для чего используется `git checkout -orphan`?

Я только что обнаружил git checkout --orphan, но я не знаю, как его использовать. На странице справки говорится, что она создает новую нечеткую ветвь.

В ветке master я пробовал git checkout --orphan br, только чтобы увидеть, что файлы в рабочем каталоге меняются на "Изменения, которые необходимо совершить", и git log say fatal: bad default revision 'HEAD'.

Итак, какое преимущество использования git checkout --orphan?

Ответ 1

Основное использование git checkout --orphan - это создание ветки в состоянии git init -like в не новом хранилище.

Без этой способности у всех ваших веток git будет общий предок, ваш первоначальный коммит. Это частый случай, но ни в коем случае не единственный. Например, git позволяет вам отслеживать несколько независимых проектов как разные ветки в одном репозитории.

Вот почему ваши файлы сообщаются как "изменения для фиксации": в состоянии git init первый коммит еще не создан, поэтому все файлы являются новыми для git.

Ответ 2

Он используется, например, GitHub Pages, который хранит веб-сайт репо внутри репо, но в отдельной ветке. Там нет причин, чтобы хранить что-либо, кроме истории сайта в этой ветке.

Ответ 3

Мы переходили на публичное репо из частного, и из-за секретной информации о фиксации мы хотели сбросить ветку как new и выдвинуть ее как пустую ветку. Вот типичный способ рабочего процесса для этого:

как удалить всю историю коммитов в github?