Puis-je dire à git d'ignorer les fichiers modifiés (supprimés) mais ne devant pas être validés?
La situation est que j'ai un sous-répertoire dans le repo qui contient des éléments qui ne m'intéressent pas du tout, je l'ai donc supprimé pour éviter qu'il n'apparaisse dans les complétions automatiques et autres (dans l'EDI).
Mais maintenant, si j'ajoute ce dossier à .gitignore, rien ne change, tout est affiché comme supprimé par git status.
Y a-t-il un moyen de faire en sorte que git l'ignore de toute façon?
(Sinon, comme j'utilise git-svn, puis-je valider les modifications dans le git local et m'assurer qu'elles ne sont pas transmises au repo svn?)
Réponses:
consultez la page de manuel git-update-index et le bit --assume-unchanged et associés.
quand j'ai ton problème je fais ça
ou un fichier spécifique
la source
git update-index --no-assume-unchanged config/database.yml
--assume-unchanged
.Une option plus récente et meilleure est
git update-index --skip-worktree
qui ne sera pas perdue lors d'une réinitialisation matérielle ou d'un nouveau changement à partir d'un pull.Consultez la page de manuel à l' adresse http://schacon.github.com/git/git-update-index.html
Et une comparaison sur http://fallengamer.livejournal.com/93321.html
la source
skip-worktree
, trouver ces fichiers est un peu fastidieux. Le seul moyen que je connaisse estgit ls-files -v |grep -v '^H'
. De plus, de nombreux outils GUI ne connaissent pas cette fonctionnalité et peuvent produire des erreurs amusantes si, par exemple, uncheckout
échoue à cause de fichiers modifiés "cachés".Utilisez ce code
la source
Les fichiers suivis ne peuvent pas être ignorés, vous devrez donc d'abord les supprimer de votre index. Ajoutez un
.gitignore
qui ignore les répertoires que vous ne voulez pas, puis supprimez-les et supprimez tous les retardataires avecgit rm --cached
.la source
Ce que je fais habituellement, c'est
la source