2009-07-21 16 views
24

que je fais habituellement ceci:travailler avec .git/info/exclure trop tard

git init 
git add . 
git commit . 

Et puis je me rends compte qu'il est sur le point d'ajouter mon répertoire nbproject, que je veux exclure/ignored. Parfois, je vérifie même dans ce répertoire. Si je l'avais ajouté à .git/info/exclude avant d'exécuter git add., Tout fonctionne bien (c'est exclu). Alors, je modifie .git/info/exclude et alors c'est trop tard. git ne respecte plus les changements de .git/info/exclude.

Ainsi, les questions sont les suivantes:

  1. Comment puis-je obtenir git prendre les changements dans le fichier d'exclusion dans le checkin? (J'ai essayé de lancer à nouveau git add, ce qui ne m'aide pas)
  2. Disons que je vérifie un répertoire (ou un fichier) que je veux exclure. Quel est le plus petit nombre d'étapes pour accéder à l'état que je veux (avec le fichier exclu).

Répondre

37

Pour supprimer un fichier que vous avez ajouté, mais pas commis, utilisez une commande comme ceci:

git rm --cached file.to.remove 

Cela supprimera le fichier de l'index, mais pas toucher le fichier sur le disque.

Pour supprimer un fichier (ou des fichiers) du le plus récent commit, utilisez la commande git rm --cached ci-dessus suivie de git commit --amend.

+0

Excellent. Est-ce que l'index fait référence au référentiel ou aux éléments sur le point d'être archivés? –

+0

L '"index" fait référence à une zone de transfert qui est validée dans le référentiel lors de la prochaine opération de validation. –

+0

Excellent, je l'ai maintenant en ce qui concerne index/cache. Je vois que vous avez mis à jour votre réponse, mais je vais encore attendre une heure avant de la marquer meilleure réponse :) Merci pour votre réponse rapide et excellente. –