Le problème semble être que vous utilisez git en plus d'iCloud Drive. En d'autres termes, le problème n'est pas du tout lié à Time Machine et aux sauvegardes - c'est plutôt que vous avez choisi de stocker votre ~/Documents/
dans iCloud Drive, ce qui n'est pas compatible avec des programmes tels que git
.
Le problème est qu'iCloud Drive traite chaque fichier comme un fichier individuel et indépendant, alors que git suppose une relation spécifique entre les fichiers. Git utilise des fichiers cachés qui contiennent des informations sur les autres fichiers du dossier - il s'attend à ce qu'ils soient "synchronisés" - et il s'attend à ce qu'il soit le seul programme à manipuler les fichiers ; cette hypothèse n'est pas nécessairement valable ici.
Imaginez par exemple que vous exécutiez une opération git qui touche plusieurs fichiers dans votre dossier - elle peut déplacer des éléments, les supprimer et les recréer, modifier les temps d'accès, etc. Il le fait très rapidement tout en conservant son propre état. iCloud Drive est déclenché par ces changements et démarre une synchronisation - cependant, il y a un décalage entre l'opération git et le déclenchement de la synchronisation. Plus tard, iCloud Drive peut avoir envoyé quelque chose au serveur et reçu des données en retour, il va les stocker et voit que le fichier (ou ses métadonnées) a changé en dessous. Maintenant, iCloud Drive a un conflit qui pourrait être résolu en écrasant votre fichier local, en mettant à la poubelle le fichier qui vient d'être reçu du serveur - ou, comme c'est le cas ici, en préservant les nouvelles données en les enregistrant avec un suffixe "2", "3", "4", etc.
Ce problème est commun à presque tous les systèmes de synchronisation de fichiers. Vous rencontrerez donc des problèmes similaires avec Dropbox, Google Drive, etc.
La solution consiste à ne pas sauvegarder un lecteur iCloud. Documents
ou déplacez votre dépôt git hors du dossier Documents
dossier.