pourquoi voudriez-vous faire ça? validez simplement vos modifications. .gitignoreest censé faire partie de votre référentiel, répertoriant les modèles de fichiers indésirables pour le projet.
KurzedMetal
1
.gitignoredoit faire partie de votre référentiel, afin que tous les membres de votre équipe ignorent ou archivent les mêmes fichiers. Ce .gitignoren'est pas parce qu'il se trouve quelque part dans vos dossiers de code que vous devez le déployer.
Le .gitignorebut du fichier est d'empêcher quiconque collabore à un projet de commettre accidentellement certains fichiers communs dans un projet, tels que les fichiers de cache générés. Par conséquent, vous ne devez pas ignorer .gitignore, car il est censé être inclus dans le référentiel.
Si vous souhaitez ignorer les fichiers dans un seul référentiel mais que vous voulez éviter de valider la liste des ignorés (par exemple pour les fichiers personnels), vous pouvez les ajouter à .git/info/excludece référentiel.
Si vous souhaitez ignorer certains fichiers sur chaque référentiel de votre machine, vous pouvez créer le fichier ~/.gitignore_global, puis exécuter
Un .gitignore peut s'ignorer s'il n'a jamais été archivé :
mhaase@ubuntu:~$ git --version
git version 1.7.9.5
mhaase@ubuntu:~$ git init temp
Initialized empty Git repository in /home/mhaase/temp/.git/
mhaase@ubuntu:~$ cd temp
mhaase@ubuntu:~/temp$ touch .gitignore foo bar baz bat
mhaase@ubuntu:~/temp$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# bar
# bat
# baz
# foo
mhaase@ubuntu:~/temp$ echo "foo" >> .gitignore
mhaase@ubuntu:~/temp$ echo ".gitignore" >> .gitignore
mhaase@ubuntu:~/temp$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# bar
# bat
# baz
nothing added to commit but untracked files present (use "git add" to track)
Si vous archivez .gitignore (avant de lui dire de s'ignorer), il apparaîtra toujours dans l'état git, même si vous le modifiez plus tard pour s'ignorer.
Exactement, c'est mon cas. Je veux avoir un local .gitignoreavec git-svnqui travailler , que personne ne devrait voir. Alors je l'ai juste ajouté et ça a marché. Mais ensuite, j'ai cherché sur Google pour voir si certaines personnes coincées expliqueraient à d'autres en quoi c'est «mauvais». Cette réponse devrait être acceptée, puis je voterais .git/info/excludeégalement les suggestions. Donc il a juste besoin d'être non suivi ... Pas très surprenant, du moins si vous avez déjà été "subverti" (svn).
Tomasz Gandor
J'ai d'abord un .gitignorefichier de sauvegarde. Ensuite, j'utilise git rm .gitignoreet j'engage ce changement. Enfin, ajoutez et validez .gitignoreà nouveau le fichier avec la règle pour .gitignore. Ça marche!
qzhang
4
Pour résoudre ce problème, vous pouvez exécuter git rm --cached .gitignore.
Gideon
19
Il n'y a pas vraiment de bonne raison de faire cela. Si vous souhaitez que les fichiers soient ignorés uniquement pour votre clone , ajoutez-les à .git/info/exclude, pas dans le .gitignorefichier.
J'obtiens "Impossible de terminer l'opération en raison des modifications existantes du fichier suivant" et le fichier qu'il répertorie celui que j'ai à exclure. Une idée pourquoi?
Paul McCarthy
3
Après avoir entré .gitignorevotre fichier gitignore, essayez ce qui suit,
Oui, vous pouvez; vous le voyez toujours dans les fichiers modifiés car il est toujours suivi par git, et les fichiers suivis par git sont toujours marqués comme modifiés même s'ils sont en .gitignore. Alors, supprimez-le simplement .
Mais pourquoi ne pas valider ou réinitialiser les modifications que vous avez dessus? C'est un bien meilleur moyen de le retirer de son statut ... Sachez également que tout nouveau clone de votre dépôt devra l'ajouter .gitignore, ce qui peut être ennuyeux.
Oui, et vous devrez got rm --cached .gitignoreprobablement le supprimer séparément de git by .
Tadeck
git rm --cached .gitignore est en train de supprimer de git. C'est destructeur et non souhaitable. Comment simplement ignorer .gitignore pour le clone local?
javadba
0
Vous pouvez y parvenir en écrivant ceci dans votre fichier .gitignore. Le *ajoutera tout à la liste !.gitignoredes ignorés puis supprimera le fichier .gitignore de la liste des ignorés.
Cela réalise le contraire de ce que OP veut cependant
Dmitry Parzhitsky
Oui, c'est exact, j'ai déjà mentionné la même chose. *ignorera tout. Y compris le .gitignorefichier.
Ankit Singh le
1
Je veux dire, OP essaie de supprimer le .gitignorefichier de la base de code (en l'ajoutant à lui-même, ce qui n'a pas vraiment de sens, mais qui suis-je pour juger). Ici, je peux voir une suggestion qui garantit que le fichier n'est jamais ignoré, ce qui signifie qu'il existe dans (est ajouté à) la base de code
Dmitry Parzhitsky
C'est correct. La question elle-même semble tordue. Mais ok.
.gitignore
est censé faire partie de votre référentiel, répertoriant les modèles de fichiers indésirables pour le projet..gitignore
doit faire partie de votre référentiel, afin que tous les membres de votre équipe ignorent ou archivent les mêmes fichiers. Ce.gitignore
n'est pas parce qu'il se trouve quelque part dans vos dossiers de code que vous devez le déployer.git rm --cached .gitignore
et annuler le suivi .gitignoreRéponses:
Le
.gitignore
but du fichier est d'empêcher quiconque collabore à un projet de commettre accidentellement certains fichiers communs dans un projet, tels que les fichiers de cache générés. Par conséquent, vous ne devez pas ignorer.gitignore
, car il est censé être inclus dans le référentiel.Si vous souhaitez ignorer les fichiers dans un seul référentiel mais que vous voulez éviter de valider la liste des ignorés (par exemple pour les fichiers personnels), vous pouvez les ajouter à
.git/info/exclude
ce référentiel.Si vous souhaitez ignorer certains fichiers sur chaque référentiel de votre machine, vous pouvez créer le fichier
~/.gitignore_global
, puis exécuterla source
Un .gitignore peut s'ignorer s'il n'a jamais été archivé :
Si vous archivez .gitignore (avant de lui dire de s'ignorer), il apparaîtra toujours dans l'état git, même si vous le modifiez plus tard pour s'ignorer.
la source
.gitignore
avecgit-svn
qui travailler , que personne ne devrait voir. Alors je l'ai juste ajouté et ça a marché. Mais ensuite, j'ai cherché sur Google pour voir si certaines personnes coincées expliqueraient à d'autres en quoi c'est «mauvais». Cette réponse devrait être acceptée, puis je voterais.git/info/exclude
également les suggestions. Donc il a juste besoin d'être non suivi ... Pas très surprenant, du moins si vous avez déjà été "subverti" (svn)..gitignore
fichier de sauvegarde. Ensuite, j'utilisegit rm .gitignore
et j'engage ce changement. Enfin, ajoutez et validez.gitignore
à nouveau le fichier avec la règle pour.gitignore
. Ça marche!git rm --cached .gitignore
.Il n'y a pas vraiment de bonne raison de faire cela. Si vous souhaitez que les fichiers soient ignorés uniquement pour votre clone , ajoutez-les à
.git/info/exclude
, pas dans le.gitignore
fichier.la source
Après avoir entré
.gitignore
votre fichier gitignore, essayez ce qui suit,Cela devrait fonctionner bien que comme déjà dit, ignorer gitignore peut être contre-productif si votre dépôt est partagé par plusieurs utilisateurs.
la source
Oui, vous pouvez; vous le voyez toujours dans les fichiers modifiés car il est toujours suivi par git, et les fichiers suivis par git sont toujours marqués comme modifiés même s'ils sont en .gitignore. Alors, supprimez-le simplement .
Mais pourquoi ne pas valider ou réinitialiser les modifications que vous avez dessus? C'est un bien meilleur moyen de le retirer de son statut ... Sachez également que tout nouveau clone de votre dépôt devra l'ajouter
.gitignore
, ce qui peut être ennuyeux.la source
got rm --cached .gitignore
probablement le supprimer séparément de git by .Vous pouvez y parvenir en écrivant ceci dans votre fichier .gitignore. Le
*
ajoutera tout à la liste!.gitignore
des ignorés puis supprimera le fichier .gitignore de la liste des ignorés.la source
*
ignorera tout. Y compris le.gitignore
fichier..gitignore
fichier de la base de code (en l'ajoutant à lui-même, ce qui n'a pas vraiment de sens, mais qui suis-je pour juger). Ici, je peux voir une suggestion qui garantit que le fichier n'est jamais ignoré, ce qui signifie qu'il existe dans (est ajouté à) la base de code