Differenze tra git pull origin master e git pull origin / master


283

Qual è la differenza tra git pull origin mastere git pull origin/master?


1
calmh ha praticamente coperto, ma la non risposta è che non dovresti mai farlo git pull origin/master. Se si desidera unire il ramo remoto [memorizzato localmente] origin/master, basta usare git merge origin/master.
Cascabel,

3
@Jefromi: puoi spiegare perché è sempre meglio fare git merge rispetto a git pull?
Rachel,

16
git pullsignifica git fetchseguito da git merge. Recupera il contenuto dal telecomando, quindi lo unisce al ramo corrente. Ma origin/masterè un ramo locale (traccia un ramo remoto). Se vuoi unirlo, non è necessario recuperare nulla. È fuorviante dire git pull origin/masterquando non stai effettivamente recuperando da un telecomando.
Cascabel,

Grazie Jefromi per le informazioni utili. Aiuta davvero a capire il concetto abbastanza facilmente non così facile.
Rachel,

Per coloro che leggono questo e ancora confuso, origin/masterè un ramo memorizzato localmente che memorizza nella cache il ramo principale sul telecomando di origine.
iheanyi,

Risposte:


356

git pull origin masterestrarrà le modifiche dal origintelecomando, masterdiramerà e le unirà al ramo di estrazione locale.

git pull origin/masterestrarrà le modifiche dal ramo archiviato localmente origin/mastere lo unirà al ramo estratto locale. Il origin/masterramo è essenzialmente una "copia cache" di ciò che è stato estratto l'ultima volta origin, motivo per cui è chiamato un ramo remoto in git parlance. Questo potrebbe essere un po 'confuso.

Puoi vedere con quali rami sono disponibili git branche git branch -rvedere i "rami remoti".


1
in caso git pull origin mastersi fonderà sempre con il ramo principale, diciamo che sono su un altro ramo nel mio repository e quindi sto facendo il comando sopra, aggiornerà il mio ramo corrente con le modifiche remote di origine o il mio ramo principale con le modifiche?
Rachel,

4
@calmh: git merge(e quindi git pull) si fonde sempre nel ramo corrente. Per unirti a qualcosa di diverso dal tuo ramo attuale, controlla prima.
Cascabel,

2
um .. Non vedo come 'origin / master' sia diverso da 'origin master'; sono entrambi il ramo principale sull'origine. Puoi davvero fare un esempio di quando sarebbero diversi?
hasen

69
git pull origin/masterpotrebbe essere stato un comando valido quando è stato scritto, ma al giorno d'oggi (git 1.7.10.3) fallisce fatal: 'origin/master' does not appear to be a git repository(come dovrebbe - pull è sempre per estrarre dai telecomandi).
user1338062

3
Perché Git è così confuso? Quindi abbiamo 4 repository totalmente, giusto? Esiste un (1) repository remoto, (2) un repository locale, (3) un repository di staging, (4) un local-remote aka origine / master? Perché git dovrebbe avere il repository n. 4?
Mugen,

3

git pull origin masterprenderà tutte le modifiche dal ramo principale del telecomando e lo unirà nel tuo locale. Generalmente non usiamo git pull origin / master. Possiamo fare lo stesso per git merge origin/master. Unirà tutte le modifiche da "copia cache" di il ramo principale di Origin nel tuo ramo locale. Nel mio caso git pull origin/mastersta gettando l'errore.


1

git pull= git fetch+git merge origin/branch

git pulle git pull origin branchdifferiscono solo per il fatto che quest'ultimo "aggiornerà" solo origine / ramo e non tutto origine / * comegit pull fa.

git pull origin/branch semplicemente non funzionerà perché sta provando a fare un git fetch origin/branch non valida.

Domanda relativa: git fetch + git merge origin / master vs git pull origin / master

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.