Comment supprimer un répertoire du dépôt git?

j'ai 2 répertoires sur mon dépôt GitHub. Je voudrais supprimer l'un d'eux. Comment pourrais-je faire cela sans supprimer et recréer le dépôt entier?

941
demandé sur eirenaios 2011-06-11 03:54:53

12 réponses

Supprimer l'Annuaire de git et local

, Vous pouvez passer à la caisse "maître" avec les deux répertoires;

git rm -r one-of-the-directories
git commit -m "Remove duplicated directory"
git push origin <your-git-branch> (typically 'master', but not always)

Supprimer l'Annuaire de git mais pas local

comme mentionné dans les commentaires, ce que vous voulez habituellement faire est de supprimer ce répertoire de git mais pas de le supprimer entièrement du système de fichiers (local)

dans ce cas, utiliser:

git rm -r --cached myFolder
1817
répondu karmakaze 2016-04-19 19:23:35

pour supprimer le dossier/répertoire uniquement à partir du dépôt git et non à partir de la commande locale try 3 simple.


étapes pour supprimer le répertoire

git rm -r --cached FolderName
git commit -m "Removed folder from repository"
git push origin master

étapes pour ignorer ce dossier dans next commits

pour ignorer ce dossier de la prochaine commit, créer un fichier en racine nommé .gitignore et mets ce nom de dossier dedans. Vous pouvez mettre autant que vous voulez

.gitignore fichier sera ressembler à ceci

/FolderName

remove directory

219
répondu eirenaios 2017-01-03 12:03:28

si, pour une raison quelconque, ce que karmakaze a dit ne fonctionne pas, vous pouvez essayer de supprimer le répertoire que vous voulez supprimer( par le biais de votre navigateur de système de fichiers), l'émission de la commande

git add -A

et puis

git commit -m 'deleting directory'

et puis

git push origin master .

64
répondu cmcculloh 2013-08-06 08:30:42

vous pouvez essayer ceci: git rm -rf <directory_name>

il va forcer supprimer le répertoire.

20
répondu Breen ho 2013-10-23 10:21:33

si vous supprimez les fichiers du répertoire (avec git rm comme l'expliquent les autres réponses), alors le répertoire n'existe plus en ce qui concerne git. Vous ne pouvez pas propager un répertoire vide, ni en supprimer un.

c'est à la différence de subversion où vous devez explicitement svn rm emptyfolder/ , et c'est d'ailleurs la raison pour laquelle la page man de git se décrit comme "le stupide tracker de contenu "

Une réponse sur "Comment puis-je ajouter un répertoire vide à un dépôt git" liens vers le FAQ sur ce sujet :

actuellement la conception de l'indice git (aire de repos) ne permet que les être listé, et personne assez compétent pour faire le changement pour permettre à vide les répertoires se sont assez souciés de cette situation pour y remédier.

Les répertoires

sont ajoutés automatiquement lors de l'ajout de fichiers à l'intérieur d'eux. Que être, les répertoires ne jamais être ajouté dans le référentiel, et ne sont pas suivis sur leur propre.

, Vous pouvez dire " git add <dir> " et il va ajouter des fichiers.

Si vous avez vraiment besoin d'un répertoire existent dans les extractions vous devez créer un fichier. .gitignore fonctionne bien pour ce but; vous pouvez le laisser vide, ou remplissez les noms des fichiers que vous s'attendre à apparaître dans le répertoire.

15
répondu dbr 2017-05-23 12:26:35

Accédez à votre Répertoire git puis tapez la commande suivante: rm-rf < nom de répertoire >

après suppression du répertoire commit les modifications par: git commit -m "Votre Message de validation"

il suffit alors de pousser les modifications sur le répertoire Git à distance: git push origin < nom de la Branche >

5
répondu anky 2016-07-13 11:53:31

j'ai l'habitude d'utiliser git add --all pour supprimer les fichiers / dossiers à partir des dépôts distants

rm -r folder_name
git add --all
git commit -m "some comment"
git push origin master

master peut être remplacé par toute autre branche du dépôt.

4
répondu ettanany 2016-09-05 15:41:41

vous pouvez supprimer le dossier localement et puis pousser, comme suit:

git rm -r folder_name
git commit -m "your commit"
git push origin master
3
répondu shrikant 2016-02-26 18:59:11

vous pouvez utiliser L'arborescence des sources D'Attlasian (Windows) ( https://www.atlassian.com/software/sourcetree/overview ). Il suffit de sélectionner les fichiers de l'arbre et appuyez sur le bouton "Supprimer" en haut. Les fichiers seront supprimés du dépôt local et de la base de données git locale. Puis de valider, puis de pousser.

2
répondu Sergey Groshev 2015-09-01 18:04:22

un de mes collègues a suggéré BFG Repo-Cleaner qui je pense puissant. Il est non seulement supprimer les données inutiles, mais aussi de nettoyer votre référentiel de commettre des informations.

1
répondu thanh.h.le 2016-11-16 14:28:00

première commande git besoin de savoir qui vous êtes avant de supprimer quoi que ce soit

  1. gitinit
  2. git config user.nom" quelqu'un "
  3. git config de l'utilisateur.e-mail "someone@someplace.com"
  4. git rm-r
  5. git commit -m "suppression dir"
  6. git push origin master
1
répondu Zeus 2017-07-06 21:27:33

pour ajouter un nouveau répertoire:

mkdir <YOUR-DIRECTORY>

mais maintenant Git n'est pas au courant par ce nouveau répertoire, parce que Git garde des pistes de fichiers Pas de répertoires Répertoire

git status

Git ne sera pas au courant du changement que nous avons fait, donc nous ajoutons le fichier caché .keep pour rendre git conscient de ce nouveau changement.

touch /YOUR-directory/.keep

maintenant, si vous appuyez sur git status Git sera conscient avec les changements.

et si vous voulez pour supprimer le répertoire, vous devez utiliser cette commande.

rm -r <YOUR-DIRECTORY>

et si vous avez coché git status , vous verrez que le répertoire a été supprimé.

0
répondu Abo3atef 2018-09-27 03:37:06