Ответ 1
Очистка всех файлов не избавляет от истории. Вам нужно создать ветвь, у которой нет истории вначале, и добавить ваши файлы конфигурации. В наши дни git checkout
есть опция --orphan
, которая делает ветвь без истории. Здесь информация о опции --orphan
:
- сирота < new_branch >
Создайте новую сиротскую ветвь с именем < new_branch > , начиная с < start_point > и переключитесь на нее. Первая фиксация, сделанная в этой новой ветке, не будет иметь родителей, и она станет корнем новой истории, полностью отключенной от всех других ветвей и совершит.
Индекс и рабочее дерево настроены так, как если бы вы ранее запускали "git checkout < start_point > ". Это позволяет вам начать новую историю, которая записывает набор путей, похожих на < start_point > , легко запуская "git commit -a", чтобы сделать корневую фиксацию.
Это может быть полезно, если вы хотите опубликовать дерево из коммита без раскрытия его полной истории. Возможно, вы захотите сделать это, чтобы опубликовать ветку с открытым исходным кодом проекта, текущее дерево которого является "чистым", но полная история которого содержит проприетарные или иным образом обремененные биты кода.
Если вы хотите запустить отключенную историю, которая записывает набор путей, полностью отличающихся от одного из < start_point > , тогда вы должны очистить индекс и рабочее дерево сразу после создания ветки-сироты, запустив "git rm -rf." от верхнего уровня рабочего дерева. После этого вы будете готовы подготовить свои новые файлы, заполнив рабочее дерево, скопировав их из других источников, извлеките архив и т.д.
Здесь ссылка на документацию для checkout. Вы также можете запустить git help checkout
.
Как только вы создали свою ветку без истории, тогда, когда вы нажмете ее на сервер, она также не будет иметь эту историю. FWIW, это помогает мне думать о git push
как "сделать удаленный филиал похожим на мой локальный". Поэтому, если у вас есть история и нажмите, у нее будет история. Если вы этого не сделаете, то нажатая ветка не будет.