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
?
Réponses
Trop de publicités?Utiliser git rm
:
git rm file1.txt
git commit -m "remove file1.txt"
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.
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.
(le commit va tenir compte de la suppression de ce fichier):
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".
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
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.