io non sono sicuro di come/se posso schiacciare quei commit o gruppo/schiacciare il mio da solo?
Squash solo i tuoi commit non altri !!
Recentemente, ho affrontato lo stesso problema, ho avuto 41 commit sulle mie richieste di pull, il mio ramo ha avuto un conflitto di fusione e la mia richiesta di pull era vecchia. Ho dovuto affrontare alcuni dei problemi che stai affrontando ora. Toccerò solo qualcosa che ho implementato.
one of my commits
another one of my commits
one of my commits, the first one after branching
suggerisco di squash solo i commit (tutti di loro se si desidera).
Ad esempio, se si dispone di 3 commit, è possibile schiacciarli e trasformarli in uno utilizzando il rebase interattivo. Vedi sotto comando:
$ git rebase -i HEAD~n
Per esempio, si vuole schiacciare 3 commit:
$ git rebase -i HEAD~3
Ora, si vede un'interfaccia rebase interattivo, in cui è possibile scrivere riformulare/prendersela primo commit e squash su resto di loro. Si prega di vedere questo video per una migliore comprensione.
Squashing commits
merge commit
someone else's commit
another merge commit
another person's commit
Rebase ad altri (qualcun altro) commette
Questo è il problema comune tutti volti quando si utilizza git. Immagina di lavorare sul tuo repository locale. Dopo aver lavorato per un po ', hai fatto qualche commit, ora vuoi spingerli al repository remoto originale. Fantastico, hai fatto questo git push
che dice il problema merge commit
.
Sapete che qualcun altro potrebbe aver commesso lo stesso repo remoto che viene aggiornato ora. Dal momento che il repository locale non è aggiornato a quello remoto, c'è merge commit problem
. Ora, se eliminiamo questo problema? Possiamo aggiornare il repository della nostra macchina locale al telecomando originale? È possibile?
Sì, è possibile, è possibile farlo ridiscutendo. Come?
Quando si esegue:
git pull --rebase
cosa sta succedendo qui? Git riavvolgerà (annulla) tutti i tuoi commit locali, abbatterà i commit remoti e poi ripeterà i tuoi commit locali in aggiunta ai commit remoti appena estratti. Se sorgono conflitti che Git non è in grado di gestire, ti verrà data l'opportunità di unire manualmente i commit, quindi esegui semplicemente git rebase --continue
per continuare a riprodurre i tuoi commit locali.
Vai a questa blog post per maggiori dettagli
Se si desidera unire la vostra filiale a padroneggiare?
Best (and safest) way to merge a git branch into master
c'è un motivo che si sta utilizzando rebase? – ilj
@ilj Gli altri membri del team amano mantenere una cronologia pulita il più possibile, quindi è necessario mantenere la cronologia del commit ragionevole. Personalmente non mi interessa una storia ragionevolmente loquace (non completamente fuori linea) – jkj2000
nella mia esperienza crea più problemi che soluzioni. – ilj