2520 votes

Comment puis-je supprimer un fichier à partir de repo git?

J'ai ajouté un fichier nommé "file1.txt" de repo git. Après que j'ai commis, a ajouté un couple de répertoires appelés dir1 et dir2, et les engage à repo git.
Maintenant, le repo a "file1.txt", dir1 et dir2. Comment puis-je supprimer "file1.txt" sans affecter les autres comme dir1 et dir2?

4205voto

Greg Hewgill Points 356191

Utiliser git rm:

git rm file1.txt
git commit -m "remove file1.txt"

659voto

Chris K Points 3940

git rm file.txt supprime le fichier de la mise en pension, mais aussi supprime le système de fichiers local.

Pour supprimer le fichier de la mise en pension et de ne pas supprimer le système de fichiers local utiliser:
git rm --cached file.txt

Ci-dessous la situation exacte est là que j'ai utiliser git pour maintenir le contrôle de version de mon site, mais le "mickey" du répertoire d'un dossier tmp de partager du contenu avec un logiciel de CAO développeur. Quand il avait besoin de gros fichiers, j'ai fait un privé, sans lien de répertoire et ftpd les fichiers il y a pour lui de récupérer via un navigateur. Oublier j'ai fait ceci, j'ai par la suite effectué un git add -A à partir du site web du répertoire de base. Par la suite, git status a montré les nouveaux fichiers ayant besoin de s'engager. Maintenant que j'avais besoin de les supprimer à partir de git de suivi et de contrôle de version...

Exemple de sortie ci-dessous est à partir de ce qui s'est passé pour moi, où j'ai supprimé par inadvertance l' .003 le fichier. Heureusement, je ne me préoccupe pas de ce qui s'est passé à la copie locale d' .003, mais certains des autres fichiers modifiés ont été mises à jour que je viens de faire sur le site et serait épique ont été supprimés sur le système de fichiers local! "Système de fichiers Local" = le site (pas très pratique, mais qui est la réalité).

[~/www]$ git rm shop/mickey/mtt_flange_SCN.7z.003
error: 'shop/mickey/mtt_flange_SCN.7z.003' has local modifications
(use --cached to keep the file, or -f to force removal)
[~/www]$ git rm -f shop/mickey/mtt_flange_SCN.7z.003
rm 'shop/mickey/mtt_flange_SCN.7z.003'
[~/www]$ 
[~/www]$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    shop/mickey/mtt_flange_SCN.7z.003
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   shop/mickey/mtt_flange_SCN.7z.001
#   modified:   shop/mickey/mtt_flange_SCN.7z.002
[~/www]$ ls shop/mickey/mtt_flange_S*
shop/mickey/mtt_flange_SCN.7z.001  shop/mickey/mtt_flange_SCN.7z.002
[~/www]$ 
[~/www]$ 
[~/www]$ git rm --cached shop/mickey/mtt_flange_SCN.7z.002
rm 'shop/mickey/mtt_flange_SCN.7z.002'
[~/www]$ ls shop/mickey/mtt_flange_S*
shop/mickey/mtt_flange_SCN.7z.001  shop/mickey/mtt_flange_SCN.7z.002
[~/www]$ 
[~/www]$ 
[~/www]$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    shop/mickey/mtt_flange_SCN.7z.002
#   deleted:    shop/mickey/mtt_flange_SCN.7z.003
#
# Changed but not updated:
#   modified:   shop/mickey/mtt_flange_SCN.7z.001
[~/www]$

Mise à jour: Cette réponse est d'obtenir un peu de trafic, donc j'ai pensé que je le mentionne mes autres Git réponse actions d'un couple de grandes ressources: Cette page a un graphique qui aident à démystifier Git pour moi. Le "Pro Git" le livre est en ligne et m'aide beaucoup.

103voto

VonC Points 414372

Si votre fichier est déjà sur GitHub, vous maintenant (juillet 2013) peut supprimer directement à partir de l'interface graphique web!

Il suffit de consulter n'importe quel fichier dans votre référentiel, cliquez sur le bouton supprimer en haut, et d'engager le retrait, tout comme toute autre basé sur le web édition.

delete button

(le commit va tenir compte de la suppression de ce fichier):

commit a deletion

Et juste comme ça, il a disparu.

Pour obtenir de l'aide grâce à ces fonctionnalités, assurez-vous de lire nos articles d'aide à la création, déplacer, renommeret supprimer des fichiers.

Remarque: Puisque c'est un système de contrôle de version Git toujours a votre retour si vous avez besoin de récupérer le fichier plus tard.

La dernière phrase signifie que le fichier supprimé est toujours partie de l'histoire, et vous pouvez le restaurer assez facilement (mais pas encore par le GitHub de l'interface web):

Voir la section "Restaurer un fichier supprimé dans un repo Git".

24voto

James Polley Points 4258

Plus généralement, git help aidera au moins à des questions simples comme ceci:

zhasper@berens:/media/Kindle/documents$ git help
usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path] [-p|--paginate|--no-pager] [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]

The most commonly used git commands are:
   add        Add file contents to the index
   :
   rm         Remove files from the working tree and from the index

5voto

jushusted Points 39

Si vous avez le GitHub pour Windows application, vous pouvez supprimer un fichier en 5 étapes faciles:

  • Cliquez Sur Le Bouton Sync.
  • Cliquez sur le répertoire où se trouve le fichier et sélectionner votre version la plus récente du fichier.
  • Cliquez sur outils et sélectionnez "Ouvrir un shell ici."
  • Dans le shell, tapez: "rm {nom de fichier}" et appuyez sur enter.
  • Valider la modification et de resynchronisation.

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