web-dev-qa-db-fra.com

git - comment supprimer un dossier vide et pousser cette modification?

Comment puis-je supprimer localement un dossier vide et le faire pour d'autres collaborateurs qui partagent la télécommande via le push-push? Je sais que les dossiers ne sont pas "suivis" dans ce sens par git mais la question demeure.

par exemple. J'ai déplacé un fichier dans un autre dossier et commis la modification (du déménagement).

Mais je ne peux pas git rm name le dossier car je reçois "ne correspond pas" git rmdir name n'existe pas.

Je peux faire un git clean -f folder mais comment cela peut-il être poussé vers le haut?

Je peux directement rm le fichier, mais comment puis-je supprimer le répertoire correctement et le transférer dans le référentiel, puis le transférer aux autres utilisateurs lorsqu'ils extraient le dossier afin que leur dossier existant soit supprimé?

54
Michael Durrant

La réponse courte: Vous ne pouvez pas appliquer les modifications aux répertoires (ajoutés, supprimés, etc.) car Git ne suit pas les répertoires par eux-mêmes

Selon le FAQ :

Actuellement, la conception de l'index git (zone intermédiaire) ne permet que la liste des fichiers, et aucune personne suffisamment compétente pour effectuer la modification permettant aux répertoires vides de se soucier suffisamment de cette situation pour y remédier.

Les répertoires sont ajoutés automatiquement lors de l'ajout de fichiers. Autrement dit, les répertoires ne doivent jamais être ajoutés au référentiel et ne sont pas suivis individuellement.

Donc, pour Git, votre répertoire vide n’existe plus.

J'ai constaté que prendre l'habitude d'utiliser git clean -fd supprime la nécessité de pousser la suppression de répertoires. Cependant, git clean peut supprimer les éléments que vous ne souhaitez peut-être pas supprimer (y compris tous les nouveaux fichiers que vous n'avez pas encore validés). J'ai donc tendance à utiliser d'abord git clean -fdn pour voir ce que sera à supprimer si j'utilise la commande.

Il semble que vous soyez forcé de parler à vos collègues développeurs afin de nettoyer ce répertoire.

92
Jake Greene
git add --all
git clean -f -d
git commit -m "trying to remove folders"
git Push
6
Ekhtiar

pour effacer les dossiers vides  

je voulais supprimer un répertoire vide (dossier) que j'ai créé. git ne peut pas le supprimer, après quelques recherches, j'ai appris Git ne suit pas les répertoires vides. Si votre projet de travail contient un répertoire vide, vous devez simplement le supprimer avec 

rm -r folderName

Il n'est pas nécessaire d'impliquer Git. notez cette réponse testée uniquement sur les dépôts de la machine locale, 

0
Rida