I e il mio amico fork dal repository principale (upstream). Ieri sera, abbiamo avuto la stessa versione di questo repository nella macchina locale. Poi ho aggiunto una nuova funzione e anche il mio amico ha aggiunto un'altra nuova funzione. Il mio amico ha richiamato la richiesta al repository principale e ho unito questa richiesta pull con il repository upstream senza conflitti. E quando prendo da monte e mi unisco al mio ramo principale, questo è in conflitto. Cosa devo fare in questa situazione per risolvere i conflitti? (Il repository upstream dovrebbe avere 2 nuove funzioni dopo la risoluzione dei conflitti)Conflitto di fusione Git
risposta
Basta passare attraverso i file contrassegnati come in conflitto con git status
e trovare i marcatori di conflitto (è possibile cercare ====
nel file). Riconciliare le modifiche tra di loro, capire se qualcos'altro inaspettato è stato rotto dalla combinazione del codice, eseguire i test e quindi utilizzare git add
e git commit
come normale per fare un commit che unisce la nuova funzione del tuo amico con il tuo.
Upstream: original with friend's feature with both
\ \ / \ /
\ -- Friend's --/ \ /
\ \ /
---- Yours ------------------------- your merge
È possibile digitare git difftool path/filename
nella console di utilizzare uno strumento per risolvere il conflitto o utilizzare software Git che ha la risoluzione dei conflitti costruito. Mi piace molto SmartGit (dai creatori di SmartSVN) e TortoiseGit (molto simile a TortoiseSVN).
Nota che si può anche risolvere direttamente un conflitto di unione da Eclipse/Egit stessa:
Vedere "Egit: Solving Merge Conflicts":
È possibile modificare manualmente il testo sul lato sinistro o utilizzare la copia corrente cambiamento da pulsante da destra a sinistra per copiare le modifiche in conflitto da destra a sinistra.
Il passaggio successivo è dal menu di scelta rapida del file, per selezionare Team -> Aggiungi a indice. Che commettere.
Vedere anche http://stackoverflow.com/questions/11674950/how-to-do-an-ours-merge-using-the-eclipse-git-merge-tool come esempio di tale utilizzo dello strumento. – VonC
- 1. Fusione con "git mergetool"
- 2. Conflitti fusione Git colore/rebase
- 3. conflitto svn albero fusione cartella rinominata
- 4. Ripulire dopo una fusione git conflittuale?
- 5. 'git pull' fa commettere gli altri nella mia area di staging durante il conflitto di fusione
- 6. Modifica dei contrassegni di conflitto git
- 7. Come vedere la modifica durante un "conflitto di fusione" in git rebase
- 8. Git conflitto marcatori
- 9. Tabella SQLite con fusione Git
- 10. Estensioni Git e fusione unione
- 11. git vedere l'intera fusione diff
- 12. Come forzare un git merge conflitto
- 13. Git/Sourcetree ramificazione e fusione di base
- 14. con lo strumento di fusione p4merge in git
- 15. Git: unione conflitto e messaggio di commit
- 16. Tortoise Git Unisci colori di conflitto
- 17. Git ignora il file cancellato sulla fusione
- 18. Git: fusione ma sovrascrittura delle modifiche
- 19. Git: Come per "annullare" una fusione
- 20. Rifare una fusione ripristinata in Git
- 21. Come annullare "git add." durante una fusione?
- 22. Quali sono le strategie di fusione di Git?
- 23. Gestione conflitto in schema.rb creato dall'operazione Git
- 24. Git rebase conflitto con nulla da unire?
- 25. Come posso risolvere questo conflitto git?
- 26. cherry-picking con git con un conflitto
- 27. git rebase con conflitto non funziona
- 28. Dov'è il driver di fusione Git a 3 vie per i file .PO (gettext)?
- 29. Cosa rende Git migliore di Subversion per la fusione?
- 30. Risoluzione di un conflitto di unione "entrambi aggiunti" in git?
Grazie, l'informazione è davvero utile. –