[Linux-Biella] hg vs git spiegatemi

Daniele Segato daniele.bilug a gmail.com
Mer 16 Nov 2011 09:23:36 CET


On Wed, 2011-11-16 at 00:00 +0100, Federico "Darkmagister" Pietta wrote:
> You are not currently on a branch, so I cannot use any
> 'branch.<branchname>.merge' in your configuration file.
> Please specify which branch you want to merge with on the command
> line and try again (e.g. 'git pull <repository> <refspec>'). 


ti sta dicendo una cosa ovvia per chi conosce un po' git :)


puoi fare il checkout di un commit specifico

git checkout 073494405e537f3a79dc0fffeec601f3e0a263f9

git te lo lascia fare, ti mette tutti i file com'erano esattamente a
quel commit

ma tu NON SEI in un branch, sei a quel commit

questa situazione in git si chiama DETACHED HEAD (la HEAD non è
attaccata ad un branch)

in genere quando fai un commit il branch "ti segue", ma se non sei in un
branch chiaramente non è possibile


la stessa cosa succede se fai il checkout di un tag, perché un tag, per
definizione, non è un branch e non può "spostarsi" con i tuoi commit



detto ciò... puoi creare un branch a partire da qualunque commit...



e per aggiornare git vuole sempre che gli indichi quale branche e da
quale repository


git pull origin master

ovvero: fai pull dal repository che si chiama "origin" per il branch
master


per fare solo:
git pull

devo mettere avere delle preferenze che dicano: "di solito il pull e il
push del branch master lo voglio fare dal repository origin"


il che lo ottieni semplicemente aggiungendo -u al primo push

git push -u origin master

successivamente quando sei su master:

git pull

git push



personalmente preferisco indicare ogni volta dove pushare e da dove
pullare (passatemi queste orride italianizzazioni) perché se un giorno
lavorassi su più repo remoti credo mi sarebbe più comodo






Maggiori informazioni sulla lista Linux