2010-03-09 16 views
5

Sono nuovo di Git, quindi sospetto che sto fraintendendo qualcosa qui, ma lo chiederò comunque.Git remote ha il master ma non HEAD

Via TortoiseGit ho effettuare le seguenti operazioni:

  • Init un nuovo repo Git localmente
  • aggiungere un file readme ad esso e commettere
  • Aggiungi un nuovo telecomando
  • spingere la nuova pronti contro termine al orgin (remoto)

Se dunque io Sfoglia Refs vedo il seguente:
teste/maestri
telecomandi/origin/master

Quello che trovo strano è che non vedo una testa sul telecomandi.

se elimino il mio repo locale e poi clonarlo dal server (ho appena spinto sopra) e quindi individuare gli arbitri che vedo:
teste/master
telecomandi/origine/HEAD
telecomandi/origine/master

Quindi perché non vedo una testina remota dopo la spinta iniziale?

NB. Ho fatto lo stesso tramite comando Git Bash (cioè non Tortoise Git) e sto vedendo la stessa cosa.

risposta

0

È perché non si estrae il repository. Quando si esegue il push si aggiorna il riferimento remoto/origine/master, ma non HEAD perché può essere associato ad altri commit. Se tiri dopo l'arrivo della TESTA.

Arriva insieme al tuo clone. Recupera tutti i riferimenti da remoto come HEAD e master

+0

Non sono assolutamente sicuro di aver capito - stai dicendo che dopo aver fatto il push iniziale al telecomando, se poi faccio un Pull e/o Fetch dovrei ottenere il HEAD? Perché l'ho provato e io no. – dwynne

3

È perché HEAD non è un riferimento remoto che devi anche spingere, è solo un riferimento al commit a cui punta HEAD del repository remoto. Questo repository sul server ha ovviamente un albero di lavoro e non è stato creato con un comando git init --bare. Sto indovinando che Tortoise Git semplicemente lo ignora perché alcune regole nel software. Sembra strano che git non riesca a mostrarlo.

Problemi correlati