2017-04-24 1 views
0

J'apprends encore le git et je le prends en main. Je veux ignorer les fichiers localement pour mon flux de travail uniquement. J'ai lu plusieurs Q & Comme ici et aussi bien que la documentation git, mais aucun d'entre eux ne mentionne ou n'explique comment créer et accéder au fichier .git/info/exclude afin de le modifier. Je n'ai pas le fichier ou du moins ce n'est pas dans le répertoire racine de git quand j'appelle la commande ls -la pour voir tous les fichiers cachés dans mon dépôt local. Je vois seulement .git, .gitignore et d'autres fichiers vus dans le dépôt.Comment créer/ajouter un fichier .git/info/exclude pour ignorer des fichiers localement?

Il existe d'autres fichiers système qui continuent à s'afficher tels que modifiés chaque fois que je les édite et les met en scène. Je finis par devoir le stocker à chaque fois pour pouvoir commettre/pousser dans le dépôt distant.

J'ai essayé d'utiliser des commandes comme nano .git/info/exclude, cat .git/info/exclude en supposant que je devais en créer un pour le faire fonctionner, mais il est écrit Error: No such file or directory. Alors, comment accéder au fichier pour commencer à les ignorer localement pour rendre mon flux de travail plus facile et moins fastidieux?

Aussi, je courais la commande cd .git et je vois certains fichiers dans le répertoire .git (mais pas de dossier info/exclude):

enter image description here

Note: Je suis conscient de la git update-index --assume-unchanged <file> et git update-index --skip-worktree <file> que d'autres moyens ignorer les fichiers localement, mais je suis intéressé à savoir comment le faire avec .git/info/exclude façon.

+1

Re votre note finale: si vous pouvez 'update-index git --skip-worktree ', puis '' est * dans le index en ce moment * et donc * ne peut pas être ignoré *. Une entrée ignorée, peu importe où vous l'avez placée, n'aura aucun effet en ce moment, car ce nom de chemin de fichier est dans l'index. – torek

Répondre

3

Un couple de choses:

D'abord, vous souhaiterez probablement utiliser .gitignore au lieu de .git/info/exclude. Il fait la même chose, sauf qu'il est vérifié dans le repo et versionné avec tous les fichiers de travail. Dans la plupart des situations, ce serait le comportement souhaité. (Si vous utilisez .git/info/exclude, seul ce clone particulier du référentiel ignorera les chemins spécifiés et si les règles ignorées changent au fur et à mesure de l'évolution de votre code, vous n'aurez plus aucun moyen de savoir quelles règles vont avec Mais si vous voulez vraiment utiliser .git/info/exclude ... eh bien, vous le traitez comme s'il s'agissait d'un nom de fichier unique, mais (conventions * NIX, qui prévalent dans la plupart des documents git).) le / est un séparateur de chemin. Donc, dans votre repo, vous voyez .git. Puis

cd .git 

et si vous faites un ls là, vous pouvez voir info. Dans le cas contraire

mkdir info 

Ensuite, vous pouvez cd info et créer le fichier exclude

+0

Merci. Quel type de fichier est 'exclure'? Est-ce qu'un '.txt'? – TheAmazingKnight

+1

Le type de fichier et l'extension sont vraiment deux questions différentes (malgré les conventions de Windows). Son type est un texte simple; il n'a pas d'extension de nom de fichier. –

+0

D'accord, merci.Sur Mac, j'ai créé le fichier simplement avec la commande 'touch exclude' sans nommer les extensions. – TheAmazingKnight