.gitignore n'ignore pas les fichiers

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 Je ne veux pas pousser. git rm ... n'est pas une option car les fichiers doivent être en version controll (avec d'autres paramètres dans les fichiers). Je ne veux pas pousser mes changements sur ces fichiers.

28
demandé sur Cœur 2010-06-03 14:30:02

8 réponses

Ignorer les fichiers dans git ne veut pas dire que vous n'aurez pas appuyer sur. Cela signifie que vous ne serez pas contrôle de version. Si vous ne voulez pas pousser alors, je vous suggère de créer une branche locale qui contiendra des trucs pour la machine locale et ensuite fusionner les changements nécessaires à une branche que vous pousserez à distance.

je pense que vous avez déjà add ed vos fichiers et essaient maintenant de les ignorer.

8
répondu Noufal Ibrahim 2010-06-03 10:53:16

j'ai eu le même problème: je voulais différent .fichier htaccess par dépôt alors je ne pouvais pas parce que le fichier htaccess avait déjà été ajouté au dépôt. Ça marche maintenant, je peux changer n'importe lequel .htaccess file à partir de n'importe quelle version sans que git les pousse. Marc a raison quand il dit "vous devez d'abord l'enlever, avant qu'il puisse être ignoré. Cela peut être fait en utilisant git rm".

j'ai procédé dans cet ordre:

  • sauvegarde de vos .fichier htaccess quelque part
  • supprimer .fichier htaccess utilisant git rm .htaccess
  • valider ce changement (.htaccess suppression)
  • push (git push)

ce sera bien évidemment retirer votre .fichier htaccess

  • puis sur modifier .gitignore et ajouter /.htaccess
  • valider puis poussez
  • recréer votre .htaccess fichier en rétablissant votre sauvegarde précédente

alors vous êtes fait: quels que soient les changements que vous faites .htaccess ne sera pas poussé plus. Le plus dur, c'est de suivre l'ordre des étapes...

j'espère que cela est clair

49
répondu anybug 2011-10-19 11:27:32

après anybug les étapes de noter ici mon git toujours gardé la trace de .htaccess et cela m'a aidé:

git update-index --assume-unchanged .htaccess

Pour revenir en arrière:

git update-index --no-assume-unchanged .htaccess
34
répondu tabacitu 2017-05-23 12:34:27

Puisque vous voulez:

  • .htaccess dans le repo Git (pas de git rm)
  • données sensibles dans les

un pilote de filtre:

  • pendant la phase de départ, complétez le .htaccess avec les données privées
  • pendant la phase de propagation nettoyer le .htaccess à partir de toutes les données sensibles

content filter driver

vous pouvez ensuite une version fichier crypté que votre bavure script:

  • être le seul à déchiffrer
  • utilisation pour terminer le classique (et poussé/tiré) .fichier htaccess.

vous pouvez modifier ces données sensibles cryptées dans une branche spéciale que vous ne pousserez pas.

Même si vous poussez ce fichier d'une manière ou d'une autre, les dommages seront limités, puisque seule votre station de travail possède la clé privée nécessaire pour décrypter ledit fichier.

13
répondu VonC 2012-07-02 05:43:57

Supposons que vous trouverez ci-dessous le contenu de .gitignore fichier. Ici,.htaccess est dans le répertoire racine du projet.

/.htaccess
application/config/config.php
application/config/database.php

exécutons la commande ci-dessous pour ignorer le .htaccess,config.php et database.php fichiers.

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

e.g.

badelal143@gmail.com:work-dir$ git update-index --no-assume-unchanged .htaccess
8
répondu Bade Lal 2014-05-05 12:52:59

Il semble que le .htaccess le fichier a déjà été ajouté au contrôle de version. Vous devez l'enlever d'abord, avant qu'il ne puisse être ignoré. Cela peut être fait à l'aide de git rm

4
répondu Marc 2010-06-03 10:36:29

je fais ça tout le temps. Je commence avec les fichiers de configuration dans mon repo puis décide que je ne les veux pas là-bas.

Vous pouvez supprimer quelque chose de votre repo en utilisant

git rm --cached <<filename>>
3
répondu Jason Yarrington 2014-06-19 03:40:03

celui-ci m'énerve pour jours. .htaccess le fichier est déjà sous le contrôle de la version et a été modifié.

2
répondu Marcelo Cantos 2010-06-03 10:34:45