2013-11-13 2 views
1

Есть дюжина подобных вопросов, каждый из которых отправляет длинные ответы, пытаясь рассказать об этом.Как создать ветку на голой репо в Git?

Возможно ли создать филиал в такой ситуации?

Я не хочу клонировать репо, чтобы я мог создать ветку в рабочем каталоге этой копии, нажать ее и снова удалить все. Скрипт, который создаст эту ветку (после проверки, чтобы увидеть, существует ли она), уже имеет доступ к голой репо в Gitolite и может выдавать команды напрямую. «git checkout» жалуется, что операция должна выполняться в дереве работ.

ответ

3

Вы можете просто пойти немного ниже уровня, в голое репо.

git branch желает создать новую ветку в голое репо. Просто дайте ему совершить, чтобы начать, и вы сделали новое название филиала, указывая на существующее обязательство:

cd foo.git 
git branch newbranch b6636ec88ba0750aec2706865653eb55031fb892 

Вы также можете использовать git update-ref, что даже ниже уровень, чем git branch и могут создавать ссылки за пределами refs/heads/ имен:

git update-ref refs/special/ziggy b6636ec88ba0750aec2706865653eb55031fb892 
git update-ref -d refs/special/delete 

Edit: И вы можете сделать косвенные реф с git symbolic-ref, например:

git symbolic-ref MAGIC refs/tags/v1.3 

(обычно это будет использоваться только для того, чтобы сделать HEAD по-разному косвенным ref; главное, что эта команда, например git update-ref, требует, чтобы вы указали имя всего пространства имен).

+0

спасибо. Это те команды, которые я хотел ... даже если я испортил 30 тестовых/экспериментальных репозиториев, прежде чем начал их понимать. –

+0

Вот для чего нужны тестовые клоны! :-) – torek

2

Давайте возьмем другой угол, чем говорим вам об этом.

Вы можете сделать все, что угодно, до чистого репо.

  • либо трудный путь, просто манипулируя файлы там, как вы хотите
  • или установки GIT_DIR и с использованием чистой репо командой
  • возможно дополнительно установкой GIT_INDEX_FILE если вам нужен локальный индекс
  • возможными дополнительно установить GIT_WORK_TREE, если вам нужен один из них

Некоторая документация о the relevant environment variables.

 Смежные вопросы

  • Нет связанных вопросов^_^