2015-02-02 4 views
1

У нас есть несколько серверов Linux в офисе. Я хотел бы сохранить некоторые записи об изменениях в настройках. Поэтому я подумал, что было бы неплохо поместить все файлы конфигурации в GIT.Как создать пустую ветку для документации

Настройка, которую я хотел бы иметь, заключается в следующем: голый репозиторий -> configuration.git с веткой для каждого сервера, на котором мы помещаем структуру каталогов и файлы конфигурации.

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

Может ли кто-нибудь указать мне в правильном направлении?

ответ

2

Имейте в виде важный отрывок из документации на git checkout --orphan:

Если вы хотите начать отключенную историю, которая записывает набор путей, который полностью отличается от одного из, то вы должны очистить индекс и рабочее дерево сразу после создания сиротской ветви, запустив git rm -rf . с верхнего уровня рабочего дерева. После этого вы будете готовы подготовить новые файлы, заселив рабочее дерево, скопировав их из других, извлечения тарболла и т.д.

Чтобы начать новую ветку для server1, запустите

git checkout --orphan server1 
git rm -rf . 

Оттуда, добавлять и совершить как обычно, например,

touch foo.conf 
git add foo.conf 
git commit -m 'Create foo.conf' 
+0

Я получаю сообщение об ошибке «фатальный: эта операция должна выполняться в дереве работ». Видимо, я не могу сделать это в открытом репозитории. Конечно, я могу клонировать его и выполнять там предлагаемую операцию, но также как-то можно уже сделать это в голом репозитории? – Matthieu

+0

@Matthieu Да, это возможно, но будет включать в себя [множество сантехнических команд] (http://git-scm.com/book/en/v2/Git-Internals-Git-Objects). Выполнение этого вручную в открытом репозитории может быть поучительным упражнением в деталях низкого уровня git, но без веской причины я рекомендую внести изменения в клон с деревом работ. –

0

Вы должны сделать следующее:

  1. Создать configuration хранилище
  2. Для сервера server01 создать филиал server01:

    git symbolic-ref HEAD refs/heads/server01
    rm -f .git/index
    git clean -fdx

  3. ВАЖНО: Теперь вы должны добавить и совершить что-то к этой отрасли.

  4. Повторите с 2. для следующего сервера.

Впоследствии вы можете просто сделать git checkout serverXX, чтобы сменить ветвь.

Если у вас не было начального коммита в ветке master, то после этой процедуры у вас не будет ветки master. (Но вы можете просто сделать то, что было описано в 2. для ветки master.)

Вы можете проверить результат с

git log --graph --branches --decorate

Он должен выглядеть следующим образом:

* commit: .... (server01) 
    Author: Max Muster <[email protected]> 
    Date: Mon Feb 2 16:00:00 2015 +0100 

    First commit of server01 branch 

* commit: .... (server02) 
    Author: Max Muster <[email protected]> 
    Date: Mon Feb 2 16:01:00 2015 +0100 

    First commit of server02 branch 

* commit: .... (server03) 
    Author: Max Muster <[email protected]> 
    Date: Mon Feb 2 16:03:00 2015 +0100 

    First commit of server03 branch 

[...] 

* commit: .... (HEAD, server99) 
    Author: Max Muster <[email protected]> 
    Date: Mon Feb 2 17:00:00 2015 +0100 

    First commit of server99 branch 
0

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

  1. Перейдите в корневую директорию, содержащую файлы конфигурации. Убедитесь, что этот каталог не, содержащийся в пределах репо вашей основной ветки или любого другого уже существующего git-репо.
  2. Тип git init. Это инициализирует ваш каталог хранилищем Git
  3. Тип git add ... Это добавляет все файлы конфигурации в вашем каталоге, которые будут отслеживаться Git. Если вам нужны только определенные файлы, вы можете добавить их с помощью git add [filename].
  4. Теперь вы готовы начать использовать Git. Разделение по умолчанию - это мастер, но вы можете создать любую ветку, которую хотите, и зафиксировать свои изменения.
Смежные вопросы