J'ai un référentiel avec un fichier, Hello.Java
. Lorsque je le compile, un fichier Hello.class
supplémentaire est généré.
J'ai créé une entrée pour Hello.class
dans un fichier .gitignore
. Cependant, le fichier semble toujours être suivi.
Comment faire en sorte que Git ignore Hello.class
?
Le problème est que .gitignore
ignore uniquement les fichiers qui n'ont pas été suivis auparavant (par git add
). Exécutez git reset name_of_file
pour désarchiver le fichier et le conserver. Si vous souhaitez également supprimer le fichier donné du référentiel (après avoir poussé), utilisez git rm --cached name_of_file
.
Comment ignorer les nouveaux fichiers
Globalement
Ajoutez le (s) chemin (s) à vos fichiers que vous souhaitez ignorer dans votre fichier .gitignore (et validez-les). Ces entrées de fichier s'appliqueront également aux autres personnes qui empruntent le référentiel.
localement
Ajoutez le (s) chemin (s) à vos fichiers que vous souhaitez ignorer à votre fichier .git/info/exclude. Ces entrées de fichier ne s'appliqueront qu'à votre copie de travail locale.
Comment ignorer les fichiers modifiés (temporairement)
Pour ignorer que les fichiers modifiés soient listés comme modifiés, vous pouvez utiliser la commande git suivante:
git update-index --assume-unchanged <file>
Pour rétablir cette ignorance, utilisez la commande suivante:
git update-index --no-assume-unchanged <file>
Ajoutez la ligne suivante à .gitignore:
/Hello.class
Cela exclura Hello.class de git. Si vous l'avez déjà commis, exécutez la commande suivante:
git rm Hello.class
Si vous souhaitez exclure tous les fichiers de classe de git, ajoutez la ligne suivante à .gitignore:
*.class
1) Créez un fichier .gitignore
. Pour ce faire, il vous suffit de créer un fichier .txt
et de modifier l'extension de la manière suivante:
Ensuite, vous devez changer le nom en écrivant la ligne suivante dans une fenêtre cmd:
rename git.txt .gitignore
Où git.txt
est le nom du fichier que vous venez de créer.
Vous pouvez ensuite ouvrir le fichier et écrire tous les fichiers que vous ne souhaitez pas ajouter dans le référentiel. Par exemple, le mien ressemble à ceci:
#OS junk files
[Tt]humbs.db
*.DS_Store
#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.pyc
*.xml
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*
#Project files
[Bb]uild/
#Subversion files
.svn
# Office Temp Files
~$*
Une fois que vous avez cela, vous devez l'ajouter à votre référentiel Git. Vous devez enregistrer le fichier où se trouve votre référentiel.
Ensuite, dans Git Bash, vous devez écrire la ligne suivante:
git config --global core.excludesfile ~/.gitignore_global
Si le référentiel existe déjà, procédez comme suit:
git rm -r --cached .
git add .
git commit -m ".gitignore is now working"
Si l’étape 2 ne fonctionne pas, vous devez écrire l’itinéraire complet des fichiers que vous souhaitez ajouter.
Ignorer:
git update-index --assume-unchanged <path/to/file>
Pour annuler ignorer:
git update-index --no-assume-unchanged <path/to/file>
Vous pouvez utiliser les méthodes ci-dessous pour ignorer/ne pas ignorer les modifications dans les fichiers suivis.
git update-index --assume-unchanged <file>
git update-index --no-assume-unchanged <file>
Créez un .gitignore
dans le répertoire où se trouve .git. Vous pouvez lister les fichiers qu'il contient séparés par une nouvelle ligne. Vous pouvez également utiliser des caractères génériques:
*.o
.*.swp
Depuis le site officiel de GitHub:
Si vous avez déjà un fichier archivé et que vous souhaitez l'ignorer, Git ne l'ignorera pas si vous ajoutez une règle ultérieurement. Dans ces cas, vous devez d'abord extraire le fichier, en exécutant la commande suivante sur votre terminal:
git rm --cached FILENAME
ou
git rm --cached .
Vous devriez écrire quelque chose comme
*.class
dans votre fichier .gitignore
.
Ajoutez les fichiers que vous souhaitez ignorer dans le fichier .gitignore
:
*.classe
*.projets
* .prefs
*.projet
En créant un fichier .gitignore. Voir ici pour plus de détails: Git Book - Ignoring files
Vérifiez également celui-ci: Comment faire en sorte que Git ignore les fichiers sans utiliser .gitignore?
Vous pouvez également utiliser .gitattributes (au lieu de .gitignore) pour exclure des types de fichiers entiers. Le fichier est assez explicite, mais je colle le contenu ici pour référence. Faites attention à la dernière ligne (binaire * .class):
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
*.ico binary
*.mo binary
*.pdf binary
*.phar binary
*.class binary
J'ai eu un problème similaire avec le fichier "dump.rdb".
J'ai essayé d'ajouter ce fichier de différentes manières au fichier .gitignore, mais une seule méthode a fonctionné.
Ajoutez votre nom de fichier, à la fin du fichier .gitignore
REMARQUE: L'ajout du fichier n'importe où ailleurs n'a pas fonctionné.
Par exemple, voir: https://gitlab.com/gitlab-org/gitlab-ce/raw/b3ad3f202478dd88a3cfe4461703bc3df1019f90/.gitignore
Cette page Web peut être utile et vous faire gagner du temps lorsque vous utilisez .gitignore
.
Il génère automatiquement des fichiers .gitignore pour différents IDE et systèmes d'exploitation avec les fichiers/dossiers spécifiques que vous ne souhaitez généralement pas extraire de votre référentiel Git (par exemple, les dossiers et les fichiers de configuration spécifiques à l'EDI).
Ajoutez la ligne suivante à .git/info/exclude:
Bonjour classe
Si vous avez déjà validé le fichier et que vous essayez de l'ignorer en ajoutant au fichier .gitignore
, Git ne l'ignorera pas. Pour cela, vous devez d'abord faire les choses ci-dessous:
git rm --cached FILENAME
Si vous démarrez le projet récemment et que vous souhaitez ajouter des fichiers à Git ignore, suivez les étapes ci-dessous pour créer un fichier Git ignore:
.gitignore
.J'ai essayé le --assume-unchanged
ainsi que le .gitignore
mais ni l'un ni l'autre n'a bien fonctionné. Ils rendent difficile le changement de branche et la fusion des modifications des autres. Ceci est ma solution:
Lorsque je commets , j'ai manuellement supprime les fichiers de la liste des modifications
Avant que je tire , je stash les fichiers modifiés. Et après avoir tiré, je fais un stash pop.
L’étape 3 peut parfois entraîner une fusion et peut entraîner des conflits que vous devez résoudre, ce qui est une bonne chose.
Cela me permet de conserver les modifications locales qui ne sont pas partagées avec les autres membres de l'équipe.