81 votes

Comment puis-je supprimer tous les fichiers de mon repo git et mettre à jour/pousser depuis mon repo git local ?

Est-il possible de supprimer tous les fichiers d'un référentiel et de le mettre à jour avec seulement les fichiers que j'ai dans ma machine locale ? La raison est que, il y a certains fichiers qui ne sont pas nécessaires dans mon github et donc je veux supprimer ces fichiers. Au lieu de supprimer les fichiers un par un, je voulais voir si c'était possible de supprimer tous les fichiers de mon dépôt git et de le mettre à jour avec seulement les fichiers de ma machine locale. J'espère que c'est clair. Merci.

0 votes

68voto

pascal Points 2405

Vous pourriez le faire comme ça :

cd /tmp
git clone /your/local/rep  # make a temp copy
cd rep
git rm -r *                # delete everything
cp -r /your/local/rep/* .  # get only the files you want
git add *                  # add them again
git status                 # everything but those copied will be removed
git commit -a -m 'deleting stuff'
cd /your/local/rep
git pull /tmp/rep          # now everything else has been removed

Il y a probablement un oneliner pour ça

4 votes

git rm -r * ne fonctionne pas de manière fiable car le * est développé par l'interpréteur de commandes, donc vous passez une liste de fichiers et de répertoires qui correspondent à * dans le CWD. Cela ne correspondra pas aux fichiers commençant par un . entre autres. L'intention est probablement de passer le * à git, en citant l'astérisque : git rm -r '*' .

47voto

taboubim Points 1564

Tout d'abord, supprimez tous les fichiers de votre dépôt Git en utilisant : git rm -r *

Après cela, vous devez valider : en utilisant git commit -m "your comment"

Après ça, tu pousses en utilisant : git push (c'est la mise à jour du dépôt d'origine)

Pour vérifier votre statut en utilisant : git status

Après cela, vous pouvez copier tous vos fichiers locaux dans le dossier Git local, et vous les ajoutez au dépôt Git en utilisant : git add -A

Vous vous engagez ( git commit -m "your comment" et vous poussez ( git push )

35voto

First Zero Points 3318

Oui, si vous faites un git rm <filename> et de commiter et pousser ces changements. Le fichier disparaîtra du référentiel pour ce jeu de modifications et les commits futurs.

Le fichier sera toujours disponible pour les révisions précédentes.

20voto

Elenasys Points 23268

Attention : ceci va supprimer vos fichiers, assurez-vous d'avoir une sauvegarde ou de pouvoir revenir en arrière.

Supprimer tous les éléments du référentiel :

$ git rm -r *

alors :

$ git commit -m 'Delete all the stuff'

0 votes

git rm -r * ne fonctionne pas de manière fiable car le * est développé par l'interpréteur de commandes, donc vous passez une liste de fichiers et de répertoires qui correspondent à * dans le CWD. Cela ne correspondra pas aux fichiers commençant par un . entre autres. L'intention est probablement de passer le * à git, en citant l'astérisque : git rm -r '*' .

13voto

HoCo_ Points 516

Dans mon cas

git rm -r .

a fait le travail

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X