Déplacer un fichier/répertoire Git et mettre à jour les références

VérifiéSûr

Déplace un fichier ou dossier dans un dépôt Git tout en mettant à jour automatiquement toutes les références dans le code, la configuration et la documentation.

Spar Skills Guide Bot
DeveloppementIntermédiaire
27/07/2026
Claude CodeCursorCodex
#git#refactoring#file-move#codebase-search#imports

Recommandé pour

Synthèse automatique

Déplace un fichier ou un répertoire avec git mv et met à jour toutes les références textuelles à l'ancien chemin dans le dépôt.

Points forts

  • Utilise git mv pour préserver l'historique Git du fichier déplacé
  • Parcourt le dépôt (code Python, tests, YAML/JSON, markdown) pour remplacer les références et vérifie qu'il n'en reste aucune
  • Produit un compte rendu du nombre de remplacements par fichier et signale les correspondances ambiguës
  • Prévoit un plan.md et une demande de clarification lorsque la tâche est ambiguë

Limites

  • Le remplacement repose sur grep, ce qui peut toucher des occurrences partielles non liées au chemin (sous-chaînes, homonymes)
  • Ne gère pas les références construites dynamiquement (imports calculés, chemins concaténés à l'exécution)
  • Le cas des sous-dépôts comme helpers_root doit être traité manuellement en se plaçant dans le bon répertoire
Quand l'utiliser

À utiliser lorsqu'on réorganise l'arborescence d'un dépôt Git et qu'il faut répercuter un renommage de chemin partout dans le code, les tests, la configuration et la documentation.

Quand l'éviter

À éviter si le chemin source est très générique ou apparaît comme sous-chaîne fréquente, ou si les références sont générées dynamiquement et exigent une migration manuelle.

Analyse de sécurité

Sûr
Score qualité85/100

The skill uses standard Git and grep commands for a legitimate repository maintenance task. It includes safeguards such as checking that the source exists, the destination does not already exist, creating parent directories, and skipping binary files and .git. There is no destructive, exfiltrating, or obfuscated behavior.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

Move a Python module
Move src/utils/parsing.py to src/core/parsing.py and update all references to it in the repo.
Relocate a config directory
git mv the directory config/legacy/ to config/archive/legacy/ and fix every path in our YAML, JSON and markdown files.
Move a file inside a subrepo
Move helpers_root/tools/log.py to helpers_root/core/log.py, descending into helpers_root for git mv, and update the imports.

description: Move a file or directory in the Git repo and update all references to it model: haiku

Goal

  • Given a source path <SRC> and destination path <DST> move a file or directory in the Git repo and update all references to it

Workflow

Validate Inputs

  • Confirm <SRC> exists in the repository
  • Confirm <DST> does not already exist (to prevent accidental overwrites)
  • Ensure the parent directory of <DST> exists, creating it if necessary

Move the File or Directory

  • Run git mv <SRC> <DST> to preserve Git history
  • If the file is in a subrepo (e.g., helpers_root), descend in that dir to use git mv
    • E.g., cd helpers_root && git mv <SRC> <DST> adjusting the paths accordingly

Update All References

  • Search the entire repository for any occurrences of <SRC>
    > grep -r -i <SRC> .
    
  • Replace each occurrence of <SRC> with <DST>
  • This includes:
    • Source code imports in Python
    • Unit test code in Python
    • Configuration files in YAML and JSON
    • Documentation in markdown and text
    • Any other plaintext files
  • Skip binary files and the .git/ directory

Summarize Changes

  • Report what changes were performed
    • List every file that had references updated, with a count of replacements per file
    • Flag any ambiguous matches that may need manual review

Ask for Help If Unsure How to Do

  • If the task is not perfectly clear, you MUST not perform it, but ask for clarifications
    • When the task is complex, create a plan.md with 5 bullet points explaining what the plan is

Verify Results

  • Make sure that there is no reference left over about file <SRC>
    > grep -r -i <SRC> .
    

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/move-git-file-directory-and-update-all-references-ms2s7d9b/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/move-git-file-directory-and-update-all-references-ms2s7d9b' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/move-git-file-directory-and-update-all-references-ms2s7d9b/download' --output '.skill-downloads/move-git-file-directory-and-update-all-references-ms2s7d9b/SKILL.md.part' && mv '.skill-downloads/move-git-file-directory-and-update-all-references-ms2s7d9b/SKILL.md.part' '.skill-downloads/move-git-file-directory-and-update-all-references-ms2s7d9b/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Le fichier ne fournit pas un en-tête name/description exploitable pour cette procédure native. Le téléchargement reste disponible pour lecture ; utilisez le mode manuel ci-dessous.

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/move-git-file-directory-and-update-all-references-ms2s7d9b/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires