2011-04-27 16 views
11

Ho un progetto in un repository Git e mi sono state inviate modifiche che sono state apportate al di fuori di Git. Queste modifiche sono basate su una versione precedente che ho apportato modifiche a me stesso. Qual è il modo migliore per unire questi file esterni con i miei?Qual è il modo migliore per unire le modifiche esterne nel mio repository Git?

Grazie mille!

+1

In che formato sono state inviate queste modifiche? Un file diff? –

risposta

10

Il modo migliore è dirlo a git ciò che si è basato su di essi, per darti la migliore possibilità di un'unione automatica.

  1. git checkout <sha1 of the old commit> -b mybranch, per riavvolgere il vostro albero di lavoro e avviare una nuova filiale.
  2. Se le modifiche sono state inviate come diff, utilizzare git-apply per applicarle all'albero di lavoro, altrimenti inserire semplicemente i file aggiornati.
  3. Aggiungere e salvare i file.
  4. git checkout master, quindi git merge mybranch.
+0

Grazie mille, sembra proprio quello che voglio. Saluti! – GitNub

4

Avrai voglia di agire esattamente come se si stesse lavorando con questi file, in modo da impegnare dallo stato della versione precedente si sta parlando:

  1. Creare uno sportello presso il impegnano credi per essere la base del file modificato
  2. aggiungere il file modificato
  3. Commit
  4. Unire di nuovo il ramo al ramo di sviluppo principale
0

il modo migliore sarebbe per la persona che ha fornito le modifiche per fornire una patch invece di file. Ma se non è possibile, quell'altra persona non è consapevole del controllo di versione o qualcos'altro, potresti provare a impegnare tutte le modifiche in sospeso nel ramo su cui stai lavorando attualmente. Preferibilmente, cerca di evitare anche i file non tracciati. Quindi copia questi file nel repository git ed esegui git status e vedrai quali sono le modifiche rispetto allo stato del tuo repository e potrai decidere cosa farai con loro

Problemi correlati