Chaque développeur de mon équipe a sa propre configuration locale. Ces informations de configuration sont stockées dans un fichier appelé devtargets.rb
qui est utilisé dans nos tâches de construction de râteau. Je ne veux pas que les développeurs s'encombrent mutuellement du fichier devtargets.
Ma première pensée a été de mettre ce fichier dans la .gitignore
liste pour qu'il ne s'engage pas à git.
Puis j'ai commencé à me demander: est-il possible de valider le fichier, mais d'ignorer les modifications apportées au fichier? Donc, je validerais une version par défaut du fichier, puis lorsqu'un développeur la changerait sur sa machine locale, git ignorerait les modifications et ne s'afficherait pas dans la liste des fichiers modifiés lorsque vous effectuez un statut git ou une validation git .
Est-ce possible? Ce serait certainement une fonctionnalité intéressante ...
Réponses:
Bien sûr, je fais exactement cela de temps en temps en utilisant
Pour annuler et recommencer le suivi (si vous avez oublié quels fichiers n'ont pas été suivis, consultez cette question ):
Documentation pertinente :
Échouer gracieusement dans ce cas signifie que s'il y a des modifications en amont de ce fichier (modifications légitimes, etc.) lorsque vous effectuez un pull, il dira:
et refusera de fusionner.
À ce stade, vous pouvez surmonter cela en annulant vos modifications locales, voici une façon:
puis tirez à nouveau et modifiez à nouveau votre fichier local, ou pourrait définir
–no-assume-unchanged
et vous pouvez faire stash et fusion normale, etc. à ce moment-là.la source
git update-index --assume-unchanged
. public-inbox.org/git/…La façon préférée de le faire est d'utiliser
git update-index --skip-worktree <file>
, comme expliqué dans cette réponse :Pour annuler cela, utilisez
git update-index --no-skip-worktree <file>
Depuis la version 2.25.1 de git, ce n'est plus la voie recommandée non plus, en citant:
la source
git update-index --skip-worktree
à cette fin.La pratique courante semble être de créer un
devtargets.default.rb
fichier et de le valider, puis de demander à chaque utilisateur de copier ce fichierdevtargets.rb
(qui figure dans la liste .gitignore). Par exemple, CakePHP fait de même pour son fichier de configuration de base de données qui change naturellement d'une machine à l'autre.la source
--assume-unchanged
option pour tous ceux qui clonent le référentiel.devtargets.default.rb
sidevtargets.rb
n'existe pas.Pour les utilisateurs d'IntelliJ IDEA: Si vous souhaitez ignorer les modifications apportées à un ou plusieurs fichiers, vous pouvez le déplacer vers un autre
Change Set
.Local Changes
(Cmd + 9
)F6
pour les déplacer vers un autreChange Set
la source