Volevo trasferire molti repository git dal mio vecchio computer Windows 7 (git 2.6.3.windows.1) a quello nuovo con Ubuntu 16.04 (git 2.7.4). Dato che non tutti avevano un repository remoto, ho deciso semplicemente di copiarli. Questo dovrebbe funzionare. Tuttavia, tutti i file tracciati in tutti i repository non sono stati messi in scena. In realtà ci sono alcuni che non sono stati impegnati prima del trasferimento dei pronti contro termine, ma la maggior parte di essi è stata impegnata.
Se cerco diff
il file che è stato eseguito il commit prima del trasferimento repository con un comando:
$git log -p -1 .gitignore
commit c566830cd3ffdf96556d29aee8dd1dc95d359872
Author: Pavel <mail@mail.com>
Date: Fri May 13 18:07:25 2016 +0300
Start
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c2535fe
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+__pycache__
+.idea
+test
restituisce il riferimento all'ultimo commit in cui è stato effettivamente eseguito il commit di questo file. Il commit nell'esempio sopra è il primo nel repository.
Quindi, per qualche motivo, git rifiuta di riconoscere i file impegnati ma li collega all'ultimo commit in cui sono stati effettivamente impegnati.
È il problema di incompatibilità di diverse versioni o piattaforme git o qualcos'altro? E come risolvere questo problema e non frenare i repository?