Per quanto vedo, git pull someRemote master
tenta di unire il ramo remoto nel mio.Posso dire a git pull di sovrascrivere invece di unire?
C'è un modo per dire "Completamente scartare le mie cose, fammi solo un altro clone del telecomando" usando git pull? Voglio ancora conservare il mio repository e mantenere la sua cronologia, ma voglio avere una copia 1: 1 del ramo master di qualcheRemote dopo quel comando.
Per chiarire, immaginare ci sono 2 repository, RM e MY. I numeri sono commit, e questo presuppone solo un ramo (master).
RM1 --- RM2 --- RM3 --- RM4 --- RM5 --- RM6 ... | | +-> MY1 --- MY2 --- MY3 -+-> MY4 --- MY5 --- MY6 ...
Così avvio il mio repository come clone di RM1. Poi mi sviluppo felicemente e RM si sviluppa felicemente, ma non condividiamo mai il nostro lavoro. Dopo MY3 mi rendo conto che il mio ramo non è eccezionale ma che RM4 è piuttosto buono. Quindi voglio git pull
RM4 in MY. Tuttavia, non voglio che le mie modifiche in MY1-3 persistano, voglio che MY4 sia una copia 1: 1 di RM4.
Tuttavia, voglio mantenere la mia cronologia, idealmente mi piacerebbe avere un set di modifiche tra MY3 e RM4 o tra MY3 e RM2-4.
Dovrebbe rimanere il mio repository.
È possibile?
(Questo è per i progetti GitHub dove posso fork di un progetto, sperimentare un po ', lasciarlo solo per un paio di settimane, ma poi vuole aggiornare senza tenere i miei cambiamenti. Al momento cancellare la forchetta e ri-forchetta , che non è l'approccio migliore.)
Fondamentalmente devo nuotare il mio ramo? C'è un modo per git magicamente unire le modifiche in modo che assomigli ad una nuova revisione? Vorrei mantenere la mia filiale e la sua storia, voglio solo fare in modo che la revisione attuale sia una copia 1: 1 della revisione corrente di un telecomando. O funzionerebbe ancora e il nuovo maestro condividerà la storia con il vecchio maestro? –
@ Michael: le tue modifiche non sarebbero andate; esistono ancora nel ramo 'my_old_master'. I tuoi obiettivi di "copia 1: 1 del telecomando" e "mantieni la mia cronologia" sono incompatibili se desideri un solo ramo. Poiché una revisione SHA1 include gli SHA1 di tutta la cronologia, un ramo non è uguale a un altro ramo a meno che * tutti * la cronologia sia identica in entrambi i rami. –
per farlo funzionare, ho dovuto prima recuperare il ramo remoto. –