Domanda

Ho recentemente clonato un repository git hg di modo che io possa pubblicarlo su GitHub. Un sacco di indirizzi e-mail sono sbagliate e vorrei utilizzare rebase git cambiarle prima di forcelle chiunque questo progetto. Se cambio loro come posso fare per spingere il nuovo, pronti contro termine completamente aggiornato alla GitHub? posso solo rebase e poi git push? Devo cancellare il primo progetto?

È stato utile?

Soluzione

Quasi. È necessario utilizzare git push -f (o --force) al fine di sovrascrivere la vecchia storia.


Su una nota completamente diversa: perché dovreste " come utilizzare git rebase " per modificare gli indirizzi committer di posta elettronica, invece di git filter-branch --env-filter

Altri suggerimenti

non ho abbastanza reputazione appena ancora per commento sul post di Jörg, ma GitHub ha un utile script di shell utilizzando git filter-branch --env-filter che mi ha aiutato fare la stessa cosa alla http://help.github.com/changing-author-info/ . Questo è un esempio di quello che gli altri commentatori sul post di Jörg stavano parlando. Questo ha funzionato per me.

Un modo per farlo è il seguente:

  • Creare un file .mbox che contiene tutte le patch dall'inizio del pronti contro termine: git format-patch --stdout --root > repo_history.mbox
  • Modificare il file repo_history.mbox, cambiando tutti gli indirizzi di posta elettronica, come si vede in forma. Potrebbe essere facile come perl -pi~ -e's/oldemail\@host\.org/newemail\@newhost\.com/gi' repo_history.mbox
  • Crea un nuovo repo: mkdir ~/newrepo; cd ~/newrepo; git init
  • Applica modifiche del mbox precedente al nuovo repo: git am /path/to/repo_history.mbox

Ho appena testato su un pronti contro termine di mine, e sembra che quanto sopra ha fatto il trucco. Fatemi sapere se vuoi maggiori dettagli.

Importante : Si dovrebbe fare solo che questa prima Hai mai pubblicare quel repository, e non una volta che altre persone hanno già tirato da esso - vedo i vostri stati domanda che già , ma questo è solo per ribadire l'importanza di questo:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top