Admin/Dev

03
Mars
2018

Retirer des dossiers du suivi de Git, après un ajout dans .gitignore

Publié par sky

Si j'utilisais déjà Git pour suivre les modifications de CaMykS, le CMS sur lequel je travaille, mais aussi quelques autres projects d'importance, ce n'était pas encore le cas pour tous mes projets, en particulier les sites internet.

Mais de plus en plus, je m'en sers aussi pour suivre le développement de ces projets là. Cependant, contrairement aux autres projets, les sites internet disposent de données qui évoluent, il ne s'agit pas uniquement de contenu fixe.

Alors bien sur, il suffit de rajouter le ou les dossiers en question dans le fichier .gitignore pour que Git ne s'en occupe plus. Mais voilà, si l'on eu eu le malheur de stage/commit un ou plusieurs fichiers avant de mettre la définition dans .gitignore, ils seront alors ignoré du .gitignore et continueront de s'afficher dans la liste des fichiers modifiés.

N'ayant commencer à utiliser Git que récemment, je ne suis pas encore très au fait, de toutes ces subtilités, mais pourtant, il a bien fallut que je trouve une solution. Et si possible une solution propre, car je ne voulais pas planté mon projet.

Et bien la voilà, sachant que je n'ai pas réussi à l'exécuter depuis Fork, je suis allé dans les lignes de commande.

Pour commencer, vérifiez bien que votre règle de gitignore fonctionne bien. Il serait dommage de tout enlever et que cela revienne instantanément.

Ensuite, si certains fichiers sont déjà dans git, et on été modifié entre temps, faites un commit avec l'ensemble des fichiers. Ainsi ils sont plus marqués comme modifiés et vous allez pouvoir les supprimer sans soucis.

Ensuite, dans votre dossier du projet, il faut exécuter la commande

git rm -r --cached mon-dossier

pour demander à Git de retirer le dossier "mon-dossier", ainsi que tout ce qu'il contient avec le paramètre -r . Le paramètre --cached est extrêmement important, car il indique à Git que l'on souhaite conserver la copie locale des fichiers, sinon, il les supprimerait aussi.

Il suffit ensuite de faire un commit pour valider tout ça.

git commit -m 'Retire le dossier mon-dossier du suivi git.'

En renouvelant la première commande, vous pouvez retirer plusieurs dossiers, un seul commit suffit en toute fin.

Alors certes cela apparait toujours dans l'historique des modifications, mais finalement, il s'agit bien d'une modification, et cela s'est fait simplement, et proprement.

 
Sommaire de la série
 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Captcha indisponible
Pour valider le formulaire, vous devez confirmer que vous êtes bien une personne. Actuellement, la fonctionnalité est indisponible. Vous devez activer le service ReCaptcha dans le gestionnaire des cookies, et donc consentir à l'utilisation de ses cookies.
Ouvrir le panneau de gestion des cookies
Fermer le panneau
Ce site utilise des cookies pour assurer son bon fonctionnement. Il utilise aussi des cookies issues de services tiers permettant de proposer des fonctionnalités avancées. À tout moment, vous pouvez choisir quels services vous souhaitez activer ou refuser, afin de retirer votre consentement quant à l'utilisation des cookies.
 
Personnalisation des services
Vous êtes libre de choisir quels services vous souhaitez activer. En autorisant ces services tiers, vous acceptez le dépôt et la lecture de cookies et l'utilisation de technologies de suivi nécessaires à leur bon fonctionnement. En retirant votre consentement pour certains de ces services, certaines fonctionnalités du site peuvent ne plus fonctionner.
Navigation du site  En savoir plus
Le site écrit un cookie de session permettant son bon fonctionnement et aidant à la navigation. Il ne peut être désactivé.
Utilisation : 1 cookie, enregistre l'identifiant de la session.
Durée de vie : Le cookie est présent pendant toute la session sur le site. Il devient obsolète après 24 minutes d'inactivité.
Obligatoire
Popup Média
Afficher des vidéos depuis Yoube ou Dailymotion.
ReCaptcha  En savoir plus
Permet de valider que les visiteurs sont bien des humains lorsqu'ils valident des formulaires.
 
Tout accepter Tout refuser Gérer