Ho aperto PR su un ramo chiamato feature-b
che presto saranno unite per main
. Tuttavia, l'ho scritto per sostenere la mia feature-a
filiale, che è in corso. Voglio continuare a lavorare su feature-a
e sfruttare il lavoro che ho fatto in feature-b
prima è stata la fusione per main
.
Qual è il modo migliore per me di fare questo? Il nostro unioni main
sono schiacciato, in modo che tutti commit feature-b
viene riscritto come un unico commettere quando si è unito a main
. Pertanto, la riassegnazione feature-a
su feature-b
ora si tradurrà in futuro conflitto dolore quando faccio il merge feature-a
per main
perché le stesse modifiche sono state fatte in diverse commette.
Qual è il modo migliore per me per includere le modifiche apportate in feature-b
nel mio feature-a
ramo, riducendo al minimo il dolore futuro quando alla fine unire feature-a
per main
?
AGGIORNAMENTO
Sono andato avanti e:
- Ribasato
feature-a
sufeature-b
- Fatto ulteriori modifiche (solo 1 commit) per
feature-a
mentrefeature-b
è in fase di revisione - Squash-unito
feature-b
una volta che è stato approvato (senza ulteriori modifiche, in modofeature-a
ha già il codice esatto che è stato fuso) - Tirato ultima
main
e ribasatofeature-a
su di esso
Come si temeva, git si lamenta del fatto che più di un file "sia modificato" o "aggiunta". Questo da solo sarebbe un po ' fastidioso, ma semplice da risolvere. Ciò che lo rende incredibilmente confuso, soprattutto se il passaggio di tempo è passato - è l'unione di commenti nel file.
Anche se entrambi main
e feature-a
i rami sono l' esatto stesso codice in tutti i file, ho super fastidioso problema:
- Per la "aggiunta" di file, unire aggiunta di commenti per "la TESTA (Variazione di Corrente)" e "genitore di #HASH (messaggio di commit)". Io sono costretto a scegliere l'uno o l'altro, anche se non sono esattamente la stessa cosa!
- Per il "sia modificato" file, è anche peggio. La "TESTA (Variazione di Corrente)" mostra il codice corretto. Tuttavia, il "padre dell' #HASH (messaggio di commit)" sezione mostra la metà del codice. Di nuovo, anche se in entrambi i rami hanno tutte il codice!! Non sto scherzando, accettando il "segnale di cambiamento" (come definite da VS Codice), rimuovere il codice che è in entrambi i rami!
Se non avessi fatto queste modifiche, in rapida successione, sarei irrimediabilmente perso e confuso su ciò che git è che mi mostra. Che ha davvero accaduto diverse volte in passato, ma non riuscivo a mettere un dito su ciò che non andava. Ora che ho riprodotto questo e verificato il comportamento, io sono completamente sconcertati per quello che git sta facendo e di come le persone a che fare con questo scenario.
AGGIORNA 2
OK, ho un po ' perché era intenzione di rimuovere il codice ora. È perché le modifiche che ho fatto in feature-b
erano in più si impegna e chi si impegna finì con l'essere schiacciato quando la fusione per main
si è verificato. Questo è senza dubbio la fonte del dolore e il motivo per cui sto cercando di capire un sano flusso di lavoro.