2014-10-20 12 views
32

In Android gerrit ex: link, per scaricare la patch, vedo 4 opzioni.gerrit - git (pull vs checkout vs cherrypick) che è per cosa?

  1. repo scaricare
  2. cassa
  3. tirare
  4. cherry-pick

Qual è la differenza tra loro?

Ecco cosa penso di loro. Si prega di chiarire

  1. repo file -> Download codice sorgente completo (di tutti i pronti contro termine Git nel progetto) fino a questo commettere
  2. cassa -> Non sono sicuro di cosa si tratta.
  3. pull -> Non sai cosa fa?
  4. cherry-pick -> Prova a scaricare solo questa modifica e unirla al codice sorgente.

So che pull e checkout sono diversi da cherry-pick. Ma come sono diversi?

+2

Nota per aspiranti answerers: questa domanda è di circa Gerrit, non Git. Se pubblichi una risposta che spiega cosa significano questi termini in Git, non stai rispondendo a questa domanda. –

risposta

23

Hai ragione sul primo. Ecco il resto di loro:

  1. Checkout: Recupera le ultime modifiche. Dovresti avere già scaricato questo repository. È non unire quelle nuove modifiche ma fa riflettere la directory di lavoro. Puoi unirli a tuo piacimento in seguito.

  2. Pull: Recupera i cambiamenti e si fonde li nella sezione locale con lo stesso nome.

  3. Cherry-accompagnamento: recupera commit e riproduce in cima della corrente ramo locale, così creando uno completamente nuovo commit quale sono contenuti stesse modifiche come quella che recuperato .

Sono leggermente diversi da ciò che in realtà significano in git. checkout e cherry-pick non recuperano automaticamente le modifiche. checkout prende semplicemente HEAD in un commit specificato, rendendo così la directory di lavoro esattamente com'era in quel commit. Allo stesso modo, cherry-pick viene utilizzato per riprodurre i commit a cui si ha già accesso locale.

+1

1. Checkout non solo _fetch_ il set di patch, ma anche _ controlla il commit esatto del set di patch. 2. Il commit del set di patch viene unito al capo corrente. I nomi delle filiali non hanno nulla a che fare con le cose. –

4

Con git hai la tua versione del repository. Che ti sincronizzi con i repository degli altri. Con fetch aggiorni i tuoi riferimenti remoti, es.Aggiorna ciò che altri hanno. Con checkout si passa a una revisione specifica. Vuoi farlo, se hai appena iniziato a usarlo.

Ora, se si sta già seguendo una filiale remota, potrebbe essere necessario aggiornare solo la propria filiale locale. Questo è ciò che fa pull per te. Applica tutte le modifiche nel ramo remoto a quello locale. Ne hai bisogno se lo stai già utilizzando, vuoi solo aggiornare.

cherry-pick consente di selezionare una modifica da qualsiasi posizione nel repository e la applicherà sul ramo locale. È utile se ti trovi in ​​una filiale diversa per qualsiasi motivo, ma hai ancora bisogno di quella specifica modifica. Siate consapevoli del fatto che se si sceglie senza spingere tale modifica che questo cambiamento non è persistente. È impegnato nel tuo repository locale ma non nel remoto (potrebbe essere ciò di cui hai bisogno nei casi).

vedere di più su basi git per esempio here

1

cassa: che si desidera utilizzare quando si è in funzione di un particolare modifica in un ramo. Dite che il vostro collega ha controllato alcune API da voi consumate, e potete verificare CHANGE in una nuova filiale locale e iniziare a lavorare sulla vostra modifica.

Cherrypick: si desidera applicare un particolare CHANGE al ramo locale o a un particolare ramo di rilascio, quindi cherrypick. Immagina di avere una correzione di patch nella versione 1.1 e vuoi applicare quella correzione/CHANGE al tuo ramo 2.0, puoi semplicemente cherrypick. Creerà una nuova CHANGE nel ramo 2.0 contenente la correzione.

qui è una rappresentazione grafica: http://think-like-a-git.net/sections/rebase-from-the-ground-up/cherry-picking-explained.html