Для чего используется `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?