2015-08-18 17 views
5

consideriÈ commutativo git merge-base?

$ git merge-base <original-branch> <new-branch> 

Domanda: è git merge-base commutativa? Cioè, il comando di cui sopra produce lo stesso risultato di

$ git merge-base <new-branch> <original-branch> 
+0

Non sono sicuro, ma poiché ci possono essere più basi di unione, direi che la risposta è ** no **. – Jubobs

+1

Vedere anche l'ottima risposta di Christopher qui: http://stackoverflow.com/a/12198219/5414160 –

risposta

4

Se c'è solo una base di unione, quindi sì.
Significato: git merge-base --all <original-branch> <new-branch> restituisce solo un commit.

Ma, come accennato nella git merge-base man page:

Quando la storia si fonde coinvolge Criss-Cross, non ci può essere più di un antenato più comune per i due commit.
Ad esempio, con questa topologia:

---1---o---A 
\/
X 
/\ 
---2---o---o---B 

sia 1 e 2 sono fondere basi di A e B. Nessuno dei due è migliore dell'altro (entrambi sono i migliori fonditori).
Quando l'opzione --all non viene fornita, non è specificato quale migliore viene emesso.

+1

In breve, 'git merge-base' potrebbe essere commutativo, ma le specifiche di tale comando non offrono tale garanzia. – Jubobs

Problemi correlati