A volte si sente parlare di auto bloccate mentre si guida fuori strada. Non hai mai sentito parlare di case bloccate in quel modo. Significa che le case hanno una migliore mobilità delle auto? Ovviamente no! Non puoi bloccare la tua casa in un fuoristrada perché non puoi guidare la tua casa affatto .
A volte si ottengono conflitti di linea nei file di testo quando si uniscono i rami di Git, ma in realtà Git tenta effettivamente di fondere le righe per i file di testo. Non ottieni mai questi conflitti con i file binari perché Git non tenta mai di unirli in primo luogo.
Prova:
- Aggiungi una linea a un'immagine JPG in un ramo
- E aggiungi un'altra linea a un'area completamente diversa della stessa immagine in un altro ramo.
- Uniscali
Git era in grado di produrre un JPG con entrambe le nuove linee? No, semplicemente ti dice che c'è un conflitto e ti aspetta che tu faccia le cose manualmente. Se hai provato la stessa cosa con i file di testo, Git avrebbe cercato di unirli automaticamente. Potrebbe aver fallito, ma solo perché ci ha provato.
Come ha detto Jörg W Mittag nella sua risposta, puoi configurare Git per utilizzare gli strumenti di diff per determinati tipi di file. Se imposti il tuo Git per usare uno strumento di diff immagine per i file JPG, potrebbe essere in grado di produrre un JPG con entrambe le nuove linee - ma in alcuni casi potrebbe anche fallire e richiedere una risoluzione dei conflitti manuale, proprio come con i file di testo. Questo significa che installando questo strumento hai reso Git meno utile per JPG?
BTW: questa domanda non è così significativa. Di solito non dici "Ho un repository Git, ora ho bisogno di trovare i file alla versione". Di solito è il contrario: i file di cui hai bisogno per la versione e devi scegliere quale controllo del codice sorgente è meglio per loro. Quindi la questione non è come la gestione di Git dei file binari sia comparabile alla sua gestione dei file di testo - la domanda è come la gestione di Git dei file binari è paragonabile alla gestione dei file binari di altro sistemi di controllo della versione.