È poco chiaro quale sia la tua situazione attuale. La prima domanda che dovresti porci è se il file ha effettivamente bisogno di essere rintracciato - i file non divergenti sono spesso file derivati, come suggerito nei commenti, e quindi non è necessario (e non dovrebbe) essere tracciati.
Se è davvero necessario rintracciarlo, è un file binario? Git non tenta di unire file binari - vengono sempre visualizzati come conflitti di unione. Git è bravo nel rilevare i file binari, quindi in questo caso probabilmente sei al sicuro. Se non è un file binario, devi comunque forzare Git a gestirlo appropriatamente. In un file .gitattributes
, aggiungere qualcosa come:
path/to/file merge=binary
Ciò dirigerla a trattarlo come un file binario a scopo di fusione. Potresti anche, se lo desideri, definire un driver di unione personalizzato. Utilizzare merge=my_merge_driver
nel file gitattributes, poi nella vostra gitconfig aggiungere qualcosa come:
[merge "my_merge_driver"]
name = descriptive name
driver = my_script %O %A %B
I tre argomenti per lo script sono la versione antenato comune (O per originale), la versione del ramo corrente (A) e l'altro ramo del versione (% B): sono file temporanei e il driver di unione deve eseguire l'unione e lasciare il risultato in% A. Vedi man gitattributes
per ulteriori informazioni.
In che modo è "puro"? È un file derivato o forse un file binario? – cmbuckley
Non riuscivo a pensare ad un'altra parola. Insolubile, forse? Sì, per i nostri scopi diciamo che è un file derivato. –
Questo ha un odore simile a un argomento "Ho bisogno di serrature in Git", anche se formulato in modo diverso. Quello che chiedi è contrario allo spirito di un DVCS. – Perception