2012-04-04 10 views
9

Sto cercando di razionalizzare due prospettive che sembrano essere correlate (o almeno forniscono funzionalità molto simili): La prospettiva 'Git Repository' (che ho ottenuto dopo l'aggiunta EGit), e la prospettiva di "Team Synchronizing" (che penso fosse parte della distribuzione EE).Prospettiva 'Git Repository' di Eclipse vs. 'Team Synchronizing'

Per quanto posso dire, sono stato in grado di ottenere il Git Repository di lavoro (con GitHub), o almeno la maggior parte delle caratteristiche: Il 'Staging Git' Finestra sta lavorando bene, sono in grado di eseguire il commit trascinando i file da "Modifiche non applicate" a "Modifiche personalizzate" e facendo clic sull'icona Conferma. Quindi sono in grado di trasferire le mie modifiche dalla finestra 'Git Repositories', facendo clic destro nell'area di lavoro-> Remotes-> origin-> url e selezionare Push dal menu (è la procedura 'corretta'?).

Con la prospettiva "Team Synchronizing", non ho fortuna nemmeno di configurarlo. Una volta selezionato il menu 'Sincronizza ...', il Git, poi vedo un tavolo (che cos'è?). Sto provando vari valori per la destinazione (altrimenti, non riesco a premere il pulsante Fine), ma non importa quello che faccio, mi dice "nessun cambiamento" per tutti i miei progetti.

Ci sono anche molte voci del menu contestuale quando si fa clic con il tasto destro su un progetto e si seleziona "Squadra". Cosa sono questi?

risposta

4

In CVS Team Synchronize è l'unico modo corretto per gestire le modifiche in entrata e in uscita. È possibile aggiornare/unire le modifiche in entrata e commettere le modifiche in uscita da questa vista. Dal momento che ogni commit è discreto e non è atomico, la vista va bene per questo flusso di lavoro.

In EGit tuttavia si hanno già azioni esplicite per aggiungere, commettere, spingere, tirare e unire. Quindi la sincronizzazione del team è in gran parte al di fuori del normale flusso di lavoro. Si comporta in modo molto simile a una sincronizzazione glorificata da una patch: scegli quale ramo vuoi confrontare con la directory di lavoro e ti mostra le differenze. È quindi possibile applicare tali modifiche in massa o individualmente ma non riprendere il contesto, cioè non creerà punti fusione o quant'altro.

Quindi dovresti allenarti a non usarlo se non per ragioni eccezionali. Ad esempio, potresti avere due rami A & B. Qualcuno ha commesso una modifica a B e hai bisogno solo di una piccola parte di esso, quindi puoi utilizzare Team Sync per mostrare i diff e solo applicare quelli necessari. O forse vuoi solo distruggere tutte le modifiche sul ramo B e chiamarle un singolo commit in A. Quindi potresti usare Team Sync piuttosto che avvitare con un rebase quando hai intenzione di lanciare comunque B o è un ramo remoto .

3

Dalla mia comprensione, la prospettiva "repository Git" è destinato per commettere i file dalla directory di lavoro al repository Git locale, mentre il punto di vista "Team sincronizzazione" è per la sincronizzazione di repository locale con un unico telecomando.

Ho trovato questo anche confuso all'inizio, perché quando si utilizza SVN, la prospettiva "Team sync" era per il commit/l'aggiornamento dei file. Fino a quando non l'ho notato nella prospettiva di sincronizzazione Team di EGit, invece di mostrare i pulsanti commit/update, ha i pulsanti pull/push, che servono per sincronizzare due repository Git.

Per le varie opzioni visualizzate nel menu di scelta rapida "Team", corrispondono a un gruppo di operazioni Git. Suggerirei di leggere il principio di funzionamento di Git prima di usare EGit. http://git-scm.com/doc sarebbe un buon inizio.

Problemi correlati