Ho combattuto la curva di apprendimento git/git-svn e la notte scorsa, come parte di quella curva di apprendimento, ho fatto qualcosa di molto, molto male. Da allora ho corretto, ma spero di capire l'errore nei miei modi.Utilizzo di git-svn: Pull, Merge o Rebase?
Ho un repository svn dal quale ho clonato il trunk e i rami (tag che ho ignorato poiché non lavoriamo su quelli). Utilizzando git, ho creato le sezioni locali per ciascuno dei comparti che attualmente bisogno di lavorare con:
$ git checkout -b trunk svn/trunk
$ git checkout -b feature1 svn/branches/development/feature1
$ git checkout -b maint svn/branches/maintenance/previous-version
ho fatto feature1 mio ramo attivo e fatto alcuni cambiamenti prima ottenere tirato via per un paio di giorni. Ho ripreso a farlo ieri ho voluto integrare eventuali modifiche apportate al baule in modo che stavo lavorando con le ultime e le più grandi. Quello che ho fatto è stato un aggiornamento completo di tutti i settori prima, tramite git svn rebase (nessun altro aveva funzionato sul ramo feature1). Con tutto ciò che è stato aggiornato dal mio repository svn, ho provato a rebase.
Con feature1 come ramo attivo, ho creato un "tronco rebase" pensando che avrei apportato le modifiche dal trunk a il ramo feature1. Ho scoperto che mi sbagliavo molto. Dopo aver unito tutti i conflitti, ho fatto uno git svn dcommit e ho scoperto che le mie modifiche erano state applicate al trunk.
La mia prima domanda è semplicemente dov'era l'errore principale nel mio processo di pensiero? Il mio secondo è, dopo molte letture e googling, vedo persone sposare tiri, fusioni e rebases. Dato che voglio unire le modifiche applicate in un ramo locale a un altro ramo locale, cosa devo fare ? Qual è la migliore pratica per questo scenario?
Grazie per il vostro aiuto.
Hai ragione che non ho familiarità con l'implementazione del modello di dati (hai dei buoni URI?). Se dovessi leggere la mia dichiarazione di rebase, dovrei leggerla come "git rebase [* from * active branch * to *] trunk" o è anche troppo limitante? Grazie. –
* Git From the Bottom Up * (http://www.newartisans.com/blog_assets/git.from.bottom.up.pdf) e * Git Internals * (http://peepcode.com/products/git-internals -pdf) sono entrambi molto buoni per comprendere la struttura di Git. (Git Internals costa $ 9, non consiglio lo screencast su Git nello stesso sito). – Paul
Questa è una buona lettura del comando. Trovo difficile da ricordare poiché l'oggetto su cui si sta agendo è il ramo estratto in molti comandi git. – Paul