Diferença entre cabeça e mestre
Qual é a diferença entre o {[[0]} e master
no Git?
3 answers
master
é uma referência ao fim de um ramo. Por convenção (e por padrão) este é geralmente o principal ramo de integração, mas não tem que ser.
HEAD
é, na verdade, um tipo especial de referência que aponta para outra referência. Pode apontar para master
ou não pode {[[12]} (irá apontar para qualquer ramo que esteja actualmente a ser verificado). Se você sabe que quer se comprometer com o ramo master
, então empurre para isto.
No seu próprio repositório, poderá verificar para onde o HEAD
aponta, executando isto:
$ git symbolic-ref HEAD
refs/heads/master
No entanto, descobrir para onde o remotes/origin/HEAD
aponta é mais complicado porque está na máquina remota.
Há um grande pequeno tutorial sobre referências do git aqui:
Http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1
A resposta simples é que HEAD
é um ponteiro / etiqueta para o commit mais recente do ramo em que está actualmente. master
é o ramo por omissão criado quando inicializou um repositório git (por exemplo git init
).
Pode apagar o ramo master
(por exemplo git branch -D master
). Não pode apagar o indicador HEAD
.
Basta empurrar as alterações do seu ramo actual
git push origin
E irá empurrar o seu ramo' B
'Para' origin/B
'.
Se estiver no seu ramo master
, O git irá empurrar para origin/master
.
Na verdade, irá empurrar todas as alterações nos ramos locais que têm ramificações remotas correspondentes em origin
. É controlado pela configuração de configuraçãoforça.predefinição.
Ver também empurrar as especificações no Livro de Pro Git .
O que estás a ver é o barra lateral representando todos os aspectos do seu repo remoto no garfo Experimental do gitx do projecto do gitx.
O {[6] } irá designar o ramo por omissão para esse remoto.
Veja git remote set-head
man page:
Não é necessário ter um ramo predefinido para um remoto, mas permite que o nome do remoto seja especificado em vez de um ramo específico.
Por exemplo, se o ramo padrão paraorigin
for definido comomaster
, entãoorigin
pode ser especificado onde você normalmente especificarorigin/master
.