.gitignore n'ignore pas les fichiers
-
23-10-2019 - |
Question
Mon .gitignore fichier est ignoré et les fichiers qui doivent être ignorés sont encore visibles.
user@host ~/workdir % git status
# On branch master
# 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: .htaccess
# modified: application/controllers/statistics.php
#
no changes added to commit (use "git add" and/or "git commit -a")
user@host ~/workdir % cat .gitignore
.htaccess
application/config/config.php
application/config/database.php
user@host ~/workdir %
Les fichiers sont dans le contrôle de version, mais avec des changements sensibles que je ne veux pas pousser. git rm ... est pas une option parce que les fichiers doivent être dans la version controll (avec d'autres paramètres dans les fichiers). Je veux juste ne pas de pousser mes modifications sur ces fichiers.
La solution
Ignorer les fichiers git ne signifie pas que vous ne serez pas pousser eux. Cela signifie que vous ne serez pas contrôle de version les. Si vous ne voulez pas pousser, je vous suggère de créer une branche locale qui contiendra des choses pour la machine locale puis fusionner les modifications nécessaires à une branche qui vous pousser à distance.
Je pense que vous avez déjà add
ed vos fichiers et essayez maintenant de les ignorer.
Autres conseils
i eu même problème: je voulais autre fichier .htaccess par dépôt alors je ne pouvais pas parce que le fichier htaccess avait déjà été ajouté au référentiel. Il travaille maintenant, je peux changer tout du fichier .htaccess partir d'une version sans obtenir git les pousser. Marc a raison quand il dit: « Vous devez d'abord le supprimer, avant qu'il ne peut être ignoré. Cela peut être fait en utilisant rm git ».
i a procédé dans cet ordre:
- sauvegarde de votre part de fichier .htaccess
- supprimer le fichier .htaccess en utilisant git rm .htaccess
- commit ce changement (suppression .htaccess)
- pousser (push git)
cela supprimera évidemment votre fichier .htaccess
- puis modifier .gitignore et ajouter /.htaccess
- commit ensuite pousser
- recréer votre fichier .htaccess par la restauration de votre sauvegarde précédente
vous avez terminé: tout ce que vous faites dans les modifications .htaccess ne sera pas poussé plus. La partie difficile est l'ordre suivant étapes ...
espère que cela est clair
les étapes de anybug noté ma piste git gardé encore de .htaccess et cela a contribué à:
git update-index --assume-unchanged .htaccess
Pour revenir:
git update-index --no-assume-unchanged .htaccess
Puisque vous voulez:
- keep
.htaccess
dans le dépôt Git (pasgit rm
) - Vous locale données sensibles dans ce
utiliser un pilote filtre qui:
- pendant la phase de paiement, remplissez le
.htaccess
avec des données privées - commit pendant la phase de nettoyage du
.htaccess
de toutes les données sensibles
vous pouvez alors la version d'un fichier crypté que votre script sera bavure:
- être le seul à Décrypter
- utiliser afin de compléter le fichier .htaccess classique (et poussé / tiré).
Vous pouvez la version que les données sensibles cryptées dans une branche spéciale vous ne poussera pas.
Même si vous avez fait pousser ce fichier en quelque sorte, les dommages seraient limités, puisque seulement votre poste de travail a la clé privée nécessaire pour décrypter ledit fichier.
Supposons que le ci-dessous est le contenu du fichier .gitignore
. Ici, .htaccess
est dans le répertoire racine du projet.
/.htaccess
application/config/config.php
application/config/database.php
Lançons la commande ci-dessous pour ignorer les fichiers .htaccess
, config.php
et database.php
.
badelal143@gmail.com:work-dir$ git update-index --assume-unchanged .htaccess
badelal143@gmail.com:work-dir$ git update-index --assume-unchanged application/config/config.php
badelal143@gmail.com:work-dir$ git update-index --assume-unchanged application/config/database.php
Si vous voulez commencer le suivi de nouveau:
badelal143@gmail.com:work-dir$ git update-index --no-assume-unchanged path/to/file
par exemple.
badelal143@gmail.com:work-dir$ git update-index --no-assume-unchanged .htaccess
Il semble que le fichier .htaccess
a déjà été ajouté au contrôle de version. Vous devez d'abord le supprimer, avant qu'il ne puisse être ignoré. Cela peut être fait en utilisant git rm
Je le fais tout le temps. Je commence par les fichiers de configuration dans mon repo puis décide que je ne veux pas les là-dedans.
Vous pouvez supprimer quelque chose de votre repo en utilisant
git rm --cached <<filename>>
Celui-ci m'a mis sur écoute pendant des jours. Le fichier .htaccess
est déjà sous le contrôle de version et a été modifiée.