6
votes

Git n'ignore pas de fichier

J'ai accidentellement suivi le fichier .dea / workspace.xml code> créé par rubymine et je n'arrive maintenant à supprimer le fichier de suivi.

On a été vérifié à plusieurs reprises à cause de cela, mais j'aimerais vraiment que cela cesse d'être suivi car il est en cause des conflits de fusion. P>

Voici comment je continue à essayer de supprimer le fichier. p>

  1. git rm --Cached .idea / workspace.xml code> p>

    $ git status
    On branch master
    Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)
    
    deleted:    .idea/workspace.xml
    
  2. GIT COMMIT -M 'Supprimer le fichier d'espace de travail du suivi' CODE> P> LI>

  3. ajoutez cette entrée à mon fichier .gitignore .idea / * code> li> ol> p>


4 commentaires

Avez-vous essayé de supprimer ( git rm .idea / workspace.xml ) d'abord, alors commettez-le et l'ajoutez à .gitignore après?


Hillary, ça devrait faire l'affaire. Qu'est-ce que vous obtenez après avoir exécuté ces 3 étapes que vous faites? Êtes-vous sûr que vous commettez vraiment la suppression?


Le fichier .gitignore est-il aussi engagé?


J'avais commis le .gitignore. Sur ma machine locale jusqu'à présent, il semble que l'élimination du dossier parent complètement, au lieu de la seule version en cache HTE semble avoir travaillé.


3 Réponses :


0
votes

Qu'est-ce que vous avez montré devrait fonctionner correctement. Je vois deux manières potentielles que le fichier peut être réintroduit à plusieurs reprises:

  • Si quelqu'un d'autre se fait toujours de fusionner des erreurs et de les résoudre en ajoutant leurs modifications et en ignorant votre suppression, le fichier continuera à revenir p> li>

  • Si vous n'incluez pas votre .gitignore code> dans votre repo ou n'engageez pas votre ajout de .ideas / * code> au .gitignore, d'autres personnes sont réajout de nouveau le fichier via quelque chose comme p>

    git add .
    


0 commentaires

0
votes

Pour moi, le problème a été causé par l'utilisation de l'outil GitHub Windows Gui.

Même si j'en ai supprimé manuellement le .dea / dossier dans .gitignore et exécuté git rm -r - cached .dea , il resterait revenir dans "Modifications non mérites".

J'ai pu résoudre cela par commettant manuellement via la ligne de commande après avoir supprimé le dossier mis en cache et ajouter à .gitignore. Je ne sais pas pourquoi mais ça marche.

GIT COMTT -M "COMMIS Manual"


0 commentaires

0
votes

Une fois qu'un fichier est commité, il y a 2 façons de dire à Git de l'ignorer:

  1. validez le retrait du fichier, puis ajoutez-le à .gitignore

    git rm - cached Git Engagement -M "supprimé ..."

  2. Définissez le supposons-inchangée drapeau

    - [no-] suppose-inchangée

    Lorsque ce drapeau est spécifié, les noms d'objet enregistrés pour les chemins ne sont pas mis à jour.
    Au lieu de cela, cette option définit / désintègre le bit "supposé inchangé" pour les chemins.

    Lorsque le bit "Supprimer inchangé" est activé, l'utilisateur promet de ne pas modifier le fichier et permet à GIT de supposer que le fichier d'arbre de travail correspond à ce qui est enregistré dans l'index. Si vous souhaitez modifier le fichier d'arborescence de travail, vous devez non définir le bit pour indiquer à GIT. Ceci est parfois utile lorsque vous travaillez avec un grand projet sur un système de fichiers qui possède un appel de système LSTAT (2) très lent (par exemple CIFS).

    GIT échouera (gracieusement) au cas où il a besoin de modifier ce fichier dans l'index E.G. lors de la fusion d'un commit; Ainsi, dans le cas où le fichier supposé non-démesuré est changé en amont, vous devrez gérer la situation manuellement.


0 commentaires