J'ai changé le nom de quelques fichiers en dé-capitalisant la première lettre, comme dans Name.jpg
a name.jpg
. Git ne reconnaît pas ces changements et j'ai dû supprimer les fichiers et les télécharger à nouveau. Existe-t-il un moyen pour que Git soit sensible à la casse lors de la vérification des changements dans les noms de fichiers ? Je n'ai apporté aucune modification au fichier lui-même.
Réponses
Trop de publicités?
user
Points
1825
J'ai pris @CBarr et a écrit un script Python 3 pour le faire avec une liste de fichiers :
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import os
import shlex
import subprocess
def run_command(absolute_path, command_name):
print( "Running", command_name, absolute_path )
command = shlex.split( command_name )
command_line_interface = subprocess.Popen(
command, stdout=subprocess.PIPE, cwd=absolute_path )
output = command_line_interface.communicate()[0]
print( output )
if command_line_interface.returncode != 0:
raise RuntimeError( "A process exited with the error '%s'..." % (
command_line_interface.returncode ) )
def main():
FILENAMES_MAPPING = \
[
(r"F:\\SublimeText\\Data", r"README.MD", r"README.md"),
(r"F:\\SublimeText\\Data\\Packages\\Alignment", r"readme.md", r"README.md"),
(r"F:\\SublimeText\\Data\\Packages\\AmxxEditor", r"README.MD", r"README.md"),
]
for absolute_path, oldname, newname in FILENAMES_MAPPING:
run_command( absolute_path, "git mv '%s' '%s1'" % ( oldname, newname ) )
run_command( absolute_path, "git add '%s1'" % ( newname ) )
run_command( absolute_path,
"git commit -m 'Normalized the \'%s\' with case-sensitive name'" % (
newname ) )
run_command( absolute_path, "git mv '%s1' '%s'" % ( newname, newname ) )
run_command( absolute_path, "git add '%s'" % ( newname ) )
run_command( absolute_path, "git commit --amend --no-edit" )
if __name__ == "__main__":
main()
gopal Pandey
Points
1
- Réponses précédentes
- Plus de réponses
5 votes
@nif ce n'est pas tout à fait correct, Git a en fait un paramètre de configuration qui contrôle si oui ou non il ignore la sensibilité à la casse.
10 votes
Ver stackoverflow.com/a/24979063/6309 : depuis git 2.0.1, un simple
git mv
travaux.0 votes
Duplicata possible de Git : Changement de la capitalisation des noms de fichiers
0 votes
@nif Je voulais juste ajouter (quelques années plus tard ;) que HFS peut mais il n'est pas sensible à la casse par défaut. J'ai une partition séparée de 65 Go formatée avec un HFS sensible à la casse, que j'utilise pour mes fichiers de données.
git
copies de travail. Ça m'évite de perdre la tête, je dois l'admettre...