2011-09-24 9 views

risposta

23

Sono due diversi nomi simbolici che possono indicare cose diverse. refs/heads/master è un ramo nella tua copia di lavoro denominata master. Spesso si tratta di un ramo di monitoraggio di refs/remotes/origin/master perché origin è il nome predefinito per il telecomando creato da git clone e il suo ramo primario viene in genere denominato anche master.

È possibile vedere la differenza tra loro con git rev-list refs/heads/master..refs/remotes/origin/master che saranno vuoti se sono uguali e altrimenti verranno elencati i commit tra di loro.

18

La differenza principale da comprendere è che le diramazioni sotto lo refs/heads/ sono succursali che, quando ne è stato estratto, è possibile procedere creando nuovi commit. Quelli sotto refs/remotes/, tuttavia, sono i cosiddetti "rami di tracciamento remoto": questi riferimenti puntano solo al commit che un repository remoto era l'ultima volta che hai fatto un git fetch <name-of-remote> o un successo git push al ramo corrispondente in quel repository remoto . (Ho scritto un post sul blog che parla di questa differenza a una certa lunghezza here.)