Ho aggiunto alcuni file binari a un repository git su Ubuntu 14.04 linux, ho trasferito questi file su un GitHub remoto e li ho passati a cloni esistenti su OS X El Capitan e Windows 10. git status
su OS X e Windows mostra alcuni di questi file come modificati anche se non sono stati toccati. Continua a mostrarli come modificati anche dopo git reset --hard
e git checkout
.Perché 'git status' mostra il file binario come modificato quando non lo è e le modalità file sono uguali
Nota, sto usando Git LFS (Large File Storage) con questi file.
Ecco l'output git diff
su OS X, dove solo 1 file di mostra come modificato:
Marks-MacBook:KTX mark$ git diff other_lib/linux/Release-x64/libSDL2main.a
diff --git a/other_lib/linux/Release-x64/libSDL2main.a b/other_lib/linux/Release-x64/libSDL2main.a
index 4202f6f..2797199 100644
Binary files a/other_lib/linux/Release-x64/libSDL2main.a and b/other_lib/linux/Release-x64/libSDL2main.a differ
e
Marks-MacBook:KTX mark$ git diff --raw other_lib/linux/Release-x64/libSDL2main.a
:100644 100644 4202f6f... 0000000... M other_lib/linux/Release-x64/libSDL2main.a
file sono contrassegnati -text
in .gitattributes
quindi non ci dovrebbero essere problemi con marcatori EOL. Cos'altro potrebbe causare i diversi risultati di sha1 e git diff per segnalare i file binari differiscono?
ho aggiunto un diff=bin
-.gitattributes
per *.a
file in cui usa le bin
textconv = hexdump -v -C
. Dopo questo, git diff
non segnala differenze ma git status
mostra ancora i file come modificati.
Come test aggiuntivo, ho copiato il file .a originale da linux su OS X e ho usato diff per confrontarlo con la copia nel mio albero di lavoro git. Sono identici. git status
sul clone di repo di Linux segnala che il file dell'albero di lavoro, che ho copiato, non è stato modificato.
Qualche suggerimento?
Quanto segue non è più vero; il repository è stato risolto come descritto nella mia risposta.
Potete provare per voi stessi. Il repository & è in GitHub allo https://github.com/KhronosGroup/KTX/tree/incoming. Il file che mostra il problema su OS X è other_lib/linux/Release-x64/libSDL2main.a
. Non ci sono problemi con nessuno degli altri file .a
con other_lib/linux
.
In Windows vengono mostrati alcuni file modificati come alcuni che sono collegamenti simbolici su Linux. Voglio concentrarmi sul caso OS X per ora poiché è più semplice.
Hai configurato git-lfs correttamente sugli host Mac e Windows? –
Forse questo è relativo agli accessi: http://stackoverflow.com/questions/1580596/how-do-i-make-git-ignore-file-mode-chmod-changes –