2012-09-05 21 views
7

Diciamo che nel nostro repository Git, abbiamo lavorato per un po 'sul ramo master. Quindi, molti di noi hanno iniziato a lavorare sul ramo coolfeature, mentre alcuni sviluppatori hanno continuato su master.Come gestire una discontinuità Git?

Ora, gli sviluppatori che hanno lavorato su master hanno perso interesse e ciò che hanno sviluppato da quando abbiamo biforcuto non è molto importante. Ma vorremmo che il ramo di sviluppo principale si chiamasse ancora master. Concettualmente, ci piacerebbe che l'albero assomigliasse a qualcosa del genere:

*--master--X  ----master 
\    /
    --coolfeature-- 

Qual è il modo più semplice per raggiungere questo obiettivo? Non vogliamo davvero provare a fondere la coolfiorità, e siamo felici che il commit abbia contrassegnato X come totalmente privo di significato.

+0

In questo modo, sarebbe saggio usare un flusso di lavoro che consenta questo. Il ramo per caratteristica è ciò che dovresti guardare. Google "Branch-per-feature" e dovresti fare un approfondito articolo su come gestire un flusso di lavoro del genere. –

risposta

3

Eseguire una pressione forzata con il nuovo ramo master.

git push -f origin master 

Altre persone recuperano il codice, ed eseguire un reset

git fetch origin master 
git reset --hard origin/master 
+0

E come rinominare 'coolfeature' come 'master'? 'git branch -d master; git branch -m coolfeature master '? –

+1

Viene "rinominato" con l'operazione 'push': il commit puntato dal" master "del ramo nel repository di origine è impostato come quello nel HEAD del repository in cui viene eseguito il' push'. – fork0

2

Il modo in cui vorrei fare questo ed evitare di fare una spinta forzata:

  1. creare un tag per il commit X che non ti interessa. (Vedrai perché in un minuto
  2. Esegui uno git revert di tutti i commit sul ramo master da quando hai staccato la coolfuosità, in modo che il repository torni allo stato in cui si trovava nel momento in cui hai biforcato, ma non lo fa t riscrivere la storia, in modo da repository di nessuno si rompe se non hanno ottenuto il memo.
  3. Merge coolfeature sul master.

il punto sulla codifica X è quello di segnare il punto prima di te tutti i cambiamenti. Tag sono a buon mercato, e ad un certo punto potresti voler sapere il punto in cui hai annullato i commit e fatto un tale cambiamento.

Problemi correlati