2013-03-01 4 views
1

Я совершенно уверен, что этот вопрос задан раньше, но я, похоже, не нашел его. Так жаль, если это дубликат.Git голый репозиторий имеет мастер-филиал проверен?

У меня есть голое хранилище позволяет называть его project_x.git, если мы проверяем конфигурационный файл он говорит

[core] 
repositoryformatversion = 0 
filemode = false 
bare = true 
symlinks = false 
ignorecase = true 
hideDotFiles = dotGitOnly 

так голое наверняка справа, голого = верно. Теперь я пытаюсь заменить master с помощью очистки.

$ git push origin :master 
remote: Updating references: 100% (1/1) 
To http://gitrepo.local/git/project_x.git 
! [remote rejected] master (branch is currently checked out) 
error: failed to push some refs to 'http://gitrepo.local/git/project_x.git' 

Я использую gitblit btw, и это не настоящий серверный URL-адрес.

Этот ответ озадачивает меня, как я могу получить ветку проверки на моем голой репо? Кто работает над этой веткой :), не имеет смысла. Либо это не годится, как конфигурация или gitblit возится со мной. Я не понимаю?

Что не так?

кстати то же самое сообщение, если я пытаюсь

git push -f , 

Edit: это работает, но вы не можете удалить ветку, как я пытался раньше.

Благодаря

ответ

5

Существует установки головки на голую репо, который на самом деле указывает на ветви, который проверяется, когда вы запускаете git clone <url> без аргументов.

Насколько я знаю, вы не можете удалить ветвь удаленного HEAD, поэтому, если вы хотите удалить мастера, вам нужно нажать вторую ветвь, переместите HEAD в эту ветку, а затем нажмите пустую ветку в master:

локально:

git branch mybranch 
git push origin mybranch 

на голое репо:

git symbolic-ref HEAD refs/heads/mybranch 

локально:

git push origin :master 

Конечно, вы можете нажать другую ветку, которую вы вызываете master, если хотите, и переместите HEAD обратно к ней.

git push origin newbranch:master 
git symbolic-ref HEAD refs/heads/master #(on bare repo) 
+0

великого объяснение, я никогда не приходился делать такой акт насилия на моем удаленном сервере, но Maven релиз был clottering его вниз с Maven-релизом совершившей, после интерактивного Rebase я discovred этой проблемы при попытке переписать историю. Во всяком случае, я вернусь к тебе благодаря тебе. – user1043825

0

Похоже, что ваш местный репозиторий был/отслеживает дистанционное происхождение/ведущую ветвь. И вы проверили локальный мастер.

git push origin :master 

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

Если вы хотите, чтобы «начать» с удаленным голым хранилищем, я бы просто сделать (на удаленном репо) нового

git init --bare 

..., а затем нажмите местный мастер на это, и затем установите его как восходящий поток.

git push origin master -u 
+0

На самом деле я был на моей ветке очистки, когда получил этот отказ от удаленного. Я знаю голые команды, вот как я создал свое голое репо на первом месте. Я думаю, что вы можете удалить удаленный, даже если вы находитесь в ветке отслеживания локально ... Я попробую это и дам вам знать. благодаря – user1043825

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

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