2017-04-19 3 views
0

Lorsque je déplace des fichiers à l'aide de la commande native du système d'exploitation ou de l'interface graphique, git perd les pistes et pense que les fichiers sont supprimés et que de nouveaux fichiers sont créés! En utilisant git mv commande ses travaux. Mais il ne supporte pas les dossiers mobiles ou les caractères génériques (le fait?)Réorganisation de dossiers sans historique de fichiers manquants

Quelle est la meilleure façon de réorganiser des fichiers et des dossiers sans manquer de leur histoire?

Répondre

0

Git, par définition, n'enregistre pas les noms de fichiers, mais calcule plutôt l'historique d'un fichier lors de l'exécution. Cela a pour conséquence qu'il n'y a pas de "meilleure façon" de réorganiser les fichiers/dossiers; certes, cependant, puisque Git détermine les renames en comparant le contenu des fichiers, cela a pour effet que, si vous voulez déplacer un fichier et modifier son contenu, il vaut mieux avoir un commit qui ne contient que des renames de fichiers et un autre commit pour les modifications de contenu. Pour les indicateurs relatifs à la manière dont Git calcule les renommes, voir les options -C et -M de git log.

0

En raison du protocole de git, comment nous déplaçons les fichiers avant git commit affecte peu. Une validation est effectivement un instantané de tous les fichiers et ne contient pas de différences par rapport à la validation précédente. Cela signifie que nous ne pouvons pas vraiment "suivre", mais devons "récupérer" le déplacement des fichiers.

Certaines commandes git (et peut-être des interfaces graphiques) le font plutôt bien. C'est une commande git que j'utilise pour lister le changement de fichiers, y compris le déplacement.

$ git log --follow -- [FILES]