rebase il tuo ramo e forza la spinta

4

Va bene quando faccio rebase e forza il push in branch che viene usato solo da me? E avrò un problema dopo unire questo ramo in master in seguito?

Alcune situazioni per illustrare questo:

  1. Abbiamo master, ho bisogno di aggiungere alcune funzionalità, quindi:
    • git pull origin master
    • git checkout -b nuova_funzionalità
    • apporta alcune modifiche all'interno del mio ramo
    • git pull --rebase origine master - perché non voglio un commit intermedio di fusione
    • se il ramo principale ha delle modifiche avremo una cronologia di commit rebased nello stato corrente
    • git push origin new_feature -f - Sono in grado di spingerlo solo con la forza perché la cronologia è diversa nel ramo di feature corrente e remoto.

Non lo unisco nella funzione principale in, perché dopo questo viene creata una richiesta di unione per questo ramo, quindi questa azione viene eseguita da un altro membro del team come esempio.

E sono assolutamente sicuro che nessuno si impegni nella mia filiale e lavori con la mia filiale, quindi capisco che la spinta forzata è accettabile.

  1. La seconda situazione in cui voglio schiacciare alcuni commit:
    • git pull origin master
    • git checkout -b nuova_funzionalità
    • git commit -m "tst1"
    • git push origin new_feature
    • git commit -m "tst2"
    • git rebase -i HEAD ~ 2 Dopo il rebase
    • git push origin new_feature -f

E dopo quella fusione in gitlab e unisci in master.

    
posta Antony Makaruk 13.09.2017 - 12:59
fonte

1 risposta

3

Un push forzato sta fondamentalmente dicendo "dimentica il vecchio ramo remoto mai esistito e spingi semplicemente quello che ti dico". In termini di ciò che finisce sul ramo nel repository remoto, i cambiamenti sono equivili.

  • Fai qualcosa
  • Spingi nuovo ramo
  • Fai alcune cose che cambiano la storia
  • Forza push branch

  • Fai qualcosa
  • Fai alcune cose che cambiano la storia
  • Spingi nuovo ramo

Quindi, se il ramo è usato solo da te in un singolo repository client e la sua copia sul server remoto è fondamentalmente utilizzata come backup, allora forzare la spinta va bene.

Se il ramo sul server remoto viene utilizzato da più repository client (da solo o da altri), forzare la spinta può facilmente portare a un pasticcio. Quando uno di quegli altri repository client preleva dal server, git tenterà di unire la loro versione del ramo con la versione server. Ciò potrebbe comportare cose indesiderate come la cronologia duplicata o la reintroduzione accidentale del codice rimosso.

    
risposta data 13.09.2017 - 13:24
fonte

Leggi altre domande sui tag