Existe-t-il une commande ignore pour git comme pour svn?
125
Je suis un nouvel utilisateur gitet je démarre un nouveau projet. J'ai un tas de fichiers de points que je voudrais ignorer. Y a-t-il une commande ignorer pour gitcomme il y en a pour svn?
Modifiez un .gitignorefichier situé à l'emplacement approprié dans la copie de travail. Vous devez ensuite ajouter ceci .gitignoreet le valider. Tous ceux qui clonent ce dépôt verront ces fichiers ignorés.
Notez que seuls les noms de fichiers commençant par /seront relatifs au répertoire .gitignoredans lequel réside. Tout le reste correspondra aux fichiers dans n'importe quel sous-répertoire.
Vous pouvez également modifier .git/info/excludepour ignorer des fichiers spécifiques uniquement dans cette copie de travail. Le .git/info/excludefichier ne sera pas validé et ne s'appliquera donc que localement dans cette copie de travail unique.
Vous pouvez également configurer un fichier global avec des modèles à ignorer git config --global core.excludesfile. Cela s'appliquera localement à toutes les copies de travail git sur le même compte utilisateur.
Exécutez git help gitignoreet lisez le texte pour plus de détails.
Ne pas avoir une simple commande Ignorer semble être un tel oubli de la part de l'équipe git.
jcollum
4
@jcollum À première vue, c'est le cas, mais la simplicité d'aliaser une commande pour en ajouter de nouvelles ET la complexité d'en créer une et de travailler sur tous les cas limites / pièges / problèmes potentiels liés à l'édition d'un fichier texte a également du sens de le laisser au utilisateur. Je me sens en conflit parce que je suis à la fois d'accord et en désaccord avec vous.
Donc, si j'utilise git ignore "index.html", il ignorera ce fichier?
JohnAndrews
La commande -t est-elle toujours applicable? Quand je l'exécute, il ajoute simplement le -t et le modèle que j'essaie d'ajouter dans le fichier git ignore
Bynho
50
Sous Linux / Unix, vous pouvez ajouter des fichiers au fichier .gitignore avec la echocommande. Par exemple, si vous souhaitez ignorer tous les .svndossiers, exécutez ceci à partir de la racine du projet:
Dans Git Bash sous Windows, je devais ajouter un /'\' précédent et final (pour créer une nouvelle ligne), comme echo /nbproject/project.properties\ >> .gitignoreet echo /nbproject/project.xml\ >> .gitignore.
Ryan
15
Vous avez deux manières d'ignorer les fichiers:
.gitignoredans n'importe quel dossier ignorera les fichiers tels que spécifiés dans le fichier pour ce dossier. L'utilisation de jokers est possible.
.git/info/excludecontient le modèle d'ignorer global, similaire au global-ignoresfichier de configuration in subversions.
Notez que les motifs dans le .gitignorefichier qui ne contiennent pas '/' sont mis en correspondance récursivement (c'est-à-dire également dans tous les sous-répertoires du répertoire dans lequel se trouve le .gitignorefichier), contrairement au cas des svn:ignorepropriétés de répertoire dans Subversion.
Jakub Narębski
6
J'espère qu'il n'est pas trop tard.
Si vous êtes sous Windows, vous pouvez simplement faire ce qui suit pour créer un fichier .gitignore
Ne l'utilisez pas si vous avez déjà un fichier .gitignore, il l'écrasera! Pour ajouter le fichier à ignorer, utilisez ceci: echo ignore.ext >> .gitignore
TomEberhard
Vous avez raison, il est conseillé de ne l'utiliser que si le fichier .gitignore n'existe pas. Mieux vaut utiliser "notepad .gitignore", si vous avez un fichier .gitignore, il l'ouvrira, et si vous ne le faites pas, il en créera un, et vous pourrez ensuite ajouter tous les fichiers du bloc-notes. 1 fichier / dossier par ligne
Nesar
3
Créez un fichier nommé .gitignore à la racine de votre référentiel. Dans ce fichier, vous mettez le chemin relatif de chaque fichier que vous souhaitez ignorer sur une seule ligne. Vous pouvez utiliser le *caractère générique.
En utilisant les réponses déjà fournies, vous pouvez lancer votre propre git ignorecommande en utilisant un alias . Ajoutez ceci à votre fichier ~ / .gitconfig:
ignore = !sh -c 'echo $1 >> .gitignore' -
Ou exécutez cette commande à partir du shell (* nix) de votre choix:
pour les noms non présents dans la copie de travail ou le repo:
echo /globpattern >> .gitignore
ou pour un fichier existant (ligne de commande de type sh):
echo /$(ls -1 file) >> .gitignore # I use tab completion to select the file to be ignored
git rm -r --cached file # if already checked in, deletes it on next commit
Il est utile de définir un fichier .gitignore complet pour votre projet. La récompense est une utilisation sûre de la pratique --allou le -adrapeau aux commandes comme addetcommit .
Pensez également à définir un fichier global ~ / .gitignore pour les modèles couramment ignorés tels que *~
, qui couvre les fichiers temporaires créés par Emacs.
Et puis vous pouvez simplement taper gisuivi de tous les éléments de plate-forme / environnement pour lesquels vous avez besoin des critères gitignore.
Exemple!
Disons que vous travaillez sur un projet de nœud qui inclut grunt et que vous utilisez webstorm sur Linux, alors vous voudrez peut-être taper: gi linux,webstorm,node,grunt > .gitignore(pour créer un tout nouveau fichier)
ou gi linux,webstorm,node,grunt >> .gitignore(pour ajouter / ajouter les nouvelles règles à un fichier existant )
Réponses:
Il n'y a pas de
git ignore
commande spéciale .Modifiez un
.gitignore
fichier situé à l'emplacement approprié dans la copie de travail. Vous devez ensuite ajouter ceci.gitignore
et le valider. Tous ceux qui clonent ce dépôt verront ces fichiers ignorés.Notez que seuls les noms de fichiers commençant par
/
seront relatifs au répertoire.gitignore
dans lequel réside. Tout le reste correspondra aux fichiers dans n'importe quel sous-répertoire.Vous pouvez également modifier
.git/info/exclude
pour ignorer des fichiers spécifiques uniquement dans cette copie de travail. Le.git/info/exclude
fichier ne sera pas validé et ne s'appliquera donc que localement dans cette copie de travail unique.Vous pouvez également configurer un fichier global avec des modèles à ignorer
git config --global core.excludesfile
. Cela s'appliquera localement à toutes les copies de travail git sur le même compte utilisateur.Exécutez
git help gitignore
et lisez le texte pour plus de détails.la source
Une commande git ignore très utile est fournie avec l'impressionnant tj / git-extras .
Voici quelques exemples d'utilisation:
Liste tous les modèles actuellement ignorés
Ajouter un motif
Ajoutez l'un des modèles de gitignore.io
git-extras fournit beaucoup plus de commandes utiles. Vaut vraiment la peine d'essayer.
la source
Sous Linux / Unix, vous pouvez ajouter des fichiers au fichier .gitignore avec la
echo
commande. Par exemple, si vous souhaitez ignorer tous les.svn
dossiers, exécutez ceci à partir de la racine du projet:la source
/
'\' précédent et final (pour créer une nouvelle ligne), commeecho /nbproject/project.properties\ >> .gitignore
etecho /nbproject/project.xml\ >> .gitignore
.Vous avez deux manières d'ignorer les fichiers:
.gitignore
dans n'importe quel dossier ignorera les fichiers tels que spécifiés dans le fichier pour ce dossier. L'utilisation de jokers est possible..git/info/exclude
contient le modèle d'ignorer global, similaire auglobal-ignores
fichier de configuration in subversions.la source
.gitignore
fichier qui ne contiennent pas '/' sont mis en correspondance récursivement (c'est-à-dire également dans tous les sous-répertoires du répertoire dans lequel se trouve le.gitignore
fichier), contrairement au cas dessvn:ignore
propriétés de répertoire dans Subversion.J'espère qu'il n'est pas trop tard.
Si vous êtes sous Windows, vous pouvez simplement faire ce qui suit pour créer un fichier .gitignore
Pour éditer .gitignore, vous pouvez exécuter
la source
Créez un fichier nommé .gitignore à la racine de votre référentiel. Dans ce fichier, vous mettez le chemin relatif de chaque fichier que vous souhaitez ignorer sur une seule ligne. Vous pouvez utiliser le
*
caractère générique.la source
En utilisant les réponses déjà fournies, vous pouvez lancer votre propre
git ignore
commande en utilisant un alias . Ajoutez ceci à votre fichier ~ / .gitconfig:Ou exécutez cette commande à partir du shell (* nix) de votre choix:
Vous pouvez également créer une
git exclude
commande en remplaçantignore
parexclude
et.gitignore
par.git/info/exclude
ci-dessus.(Si vous ne comprenez pas déjà la différence entre ces deux fichiers après avoir lu les réponses ici, lisez cette question .)
la source
pour les noms non présents dans la copie de travail ou le repo:
ou pour un fichier existant (ligne de commande de type sh):
la source
Il est utile de définir un fichier .gitignore complet pour votre projet. La récompense est une utilisation sûre de la pratique
--all
ou le-a
drapeau aux commandes commeadd
etcommit
.Pensez également à définir un fichier global ~ / .gitignore pour les modèles couramment ignorés tels que
*~
, qui couvre les fichiers temporaires créés par Emacs.la source
Vous devez installer git-extras pour cela. Vous pouvez l'installer dans Ubuntu en utilisant apt-get,
Ensuite, vous pouvez utiliser la commande git ignore.
la source
brew install git-extras
.Vous pouvez également utiliser gitignore.io de Joe Blau
Soit via l'interface web https://www.gitignore.io/
Ou en installant l'outil CLI, c'est très simple et rapide, tapez simplement ce qui suit sur votre terminal:
Linux:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bashrc && source ~/.bashrc
OSX:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bash_profile && source ~/.bash_profile
Et puis vous pouvez simplement taper
gi
suivi de tous les éléments de plate-forme / environnement pour lesquels vous avez besoin des critères gitignore.Exemple!
Disons que vous travaillez sur un projet de nœud qui inclut grunt et que vous utilisez webstorm sur Linux, alors vous voudrez peut-être taper:
gi linux,webstorm,node,grunt > .gitignore
(pour créer un tout nouveau fichier)ou
gi linux,webstorm,node,grunt >> .gitignore
(pour ajouter / ajouter les nouvelles règles à un fichier existant )bam, tu es prêt à partir
la source