Ho sentito parlare di "fusione bolle" per quanto riguarda Git. Sono abbastanza esperto in Git, ma non mi considererei un esperto. Ho sentito alcune cose negative su unire le bolle; che cosa è una "bolla di fusione" in Git, cosa c'è che non va e come posso evitarlo?Che cos'è una "bolla di fusione"?
risposta
A una bolla di unione è una "unione banale" in Git che non richiede conflitti da risolvere. La bolla si verifica nel registro in cui viene visualizzata l'unione quando si utilizza l'opzione --graph
. per esempio, se è stato eseguito git log --graph
si potrebbe vedere qualcosa di simile:
| |
* | commit d79f3c4e129356b055c659ee5be28081c1f38aa1
|\ \ Merge: 09bf1ed 4ef9a23
| | | Author: Peter <[email protected]>
| | | Date: Wed Sep 17 17:21:07 2014 -0400
| | |
| | | Merge branch 'master' of http://fictitiousrepo.visualstudio.com/DefaultCollection/_git/fictitiousproject
| | |
| * | commit 4ef9a2387f0d4db39a6cab8ff8f531815935c305
| | | Author: Andrew <[email protected]>
| | | Date: Tue Sep 16 11:54:14 2014 -0500
| | |
| | | updated changelog
| | |
* | | commit 09bf1ed0125d77c26b5760939c125998bb046e9a
|//Author: Peter <[email protected]>
| | Date: Wed Sep 17 17:20:30 2014 -0400
| |
| | fixed some bugs
dove le righe "rigonfiamento" è il "merge bolla". Questo può sembrare innocuo; ma molti lo considerano molto meno leggibile di quello che potrebbe essere accaduto, che sarebbe come questo:
|
* commit 09bf1ed0125d77c26b5760939c125998bb046e9a
| Author: Peter <[email protected]>
| Date: Wed Sep 17 17:20:30 2014 -0400
|
| fixed some bugs
|
* commit 4ef9a2387f0d4db39a6cab8ff8f531815935c305
| Author: Andrew <[email protected]>
| Date: Tue Sep 16 11:54:14 2014 -0500
|
| updated changelog
|
... perché nessuno merge era veramente necessario.
Generalmente ciò accade quando si accetta una richiesta di pull unendola automaticamente. A volte questo era dovuto al modo in cui il pulsante "Unisci richiesta pull" usato per lavorare su Github.
Per evitare l'unione di bolle con richieste di pull, è necessario unire manualmente una strategia. Per esempio:
git checkout master
git remote add remoteorigin git://remotegithost.com/remotegitrepo/remotegitproject
git fetch remoteorigin
git merge remoteorigin/remoteprojectbranch
git push origin master
Per rimuovere una bolla di fusione recentemente impegnata da una richiesta di pull (quando non avete spinto), una strategia è quella di riporre prima le modifiche correnti, reimpostare la testa per il commit prima che la bolla, tirare con rebase, quindi premere. Per esempio:
git stash save
git reset --hard HEAD~1
git pull --rebase
git push origin HEAD
Riferimento: http://adammonsen.com/post/1172
- 1. Unione automatica di richieste pull su Github senza la bolla di fusione
- 2. Creare una bolla di chat in Android
- 3. Come si fa a creare una bolla?
- 4. Albero bolla in d3?
- 5. onFocus bolla in React
- 6. Custom MKPinAnnotazione bolla di richiamo simile alla bolla di callout predefinita
- 7. Come posizionare una bolla di pensiero sopra un'immagine CSS
- 8. Come abbandonare una fusione hg?
- 9. Esempio di bolla D3: cosa fa bubble.nodes()?
- 10. Personalizzazione della bolla di callout MKAnnotation
- 11. Come bolla angular2 evento personalizzato
- 12. Bolla di discorso CSS puro con bordo
- 13. Differente comportamento di fusione
- 14. Conflitto di fusione Git
- 15. Rifare una fusione ripristinata in Git
- 16. Pointer/indirizzo di fusione
- 17. Come interrompere una fusione in mercurial?
- 18. Git: Come per "annullare" una fusione
- 19. Ripulire dopo una fusione git conflittuale?
- 20. svn: Come annullare una fusione (senza commit)?
- 21. Come annullare "git add." durante una fusione?
- 22. ngTouch ngClick non lo fa bolla
- 23. Comprensione degli alberi di fusione?
- 24. Strategie di ramificazione e fusione
- 25. metodo di fusione iOS moltiplicare
- 26. Come mettere in bolla l'ordinamento di un array di stringhe?
- 27. Bolla di chat per l'implementazione di Android in ListView
- 28. Mercurial - processo di base per tornare una fusione e riprovare
- 29. Possibile comportamento di fusione incoerente
- 30. Fusione interleaved con LINQ?
+ Domanda e risposta. Spettacolo di una sola persona. –
Questa è come ... la migliore domanda auto-risposta che abbia mai visto. Super solido, grazie per la condivisione. – meagar
Non riuscivo a trovare una risposta su SO, quindi avevo pensato di condividere ... –