7
votes

Comment rendre Git ignorer les modifications apportées aux sous-modules par défaut

Puisque les gitmodules ont été introduites dans Git, j'aime les ajouter comme: xxx

la partie importante ici est Ignore = sale . << p> Lors de l'utilisation de la commande gitoule Ajouter , je suis obligé d'ajouter cette ligne par moi-même dans le fichier .gitModules .

Comment puis-je Faites ce comportement par défaut pour chaque gitououle Ajouter Je ferai dans le futur?

Je connais sur la sous-sodule . .Imore . Configuration, mais comment l'appliquer à tous par défaut?


4 commentaires

Je ne sais pas s'il y a un moyen de le faire par défaut, mais vous pouvez facilement ajouter un alias ou un script pour le faire pour vous.


Je ne vois pas comment faire ça par alias. Et comme pour le script, j'espérais juste que Git avait une option par défaut pour elle


GIT traitera comme un alias tout script en $ chemin qui commence par git- comme git . Vous pouvez simplement écrire un script shell qui accepte le nom des sous-modules, ajoute-le, puis émet le sous-module . .ignore Configuration et appelez-le git supersubmodule ou quelque chose.


@Christopher je sais que je peux faire cela, alors ils ne sont vraiment pas des options GIT pour cela? S'il vous plaît poster une réponse avec votre dernier commentaire si oui.


6 Réponses :


1
votes

Je ne suis pas sûr d'une option par défaut. Était-ce un état binaire (ignorer ou non), vous pouvez obtenir une traction avec: xxx

mais que vous utilisez sale Je ne suis pas sûr qu'il y a un moyen Pour définir une valeur par défaut. Peu importe, vous pouvez le faire avec un alias git dans votre $ chemin . Écrivez un script qui accepte le sous-module sous forme d'argument et définissez la valeur de configuration appropriée , puis ajoutez ce script à votre $ chemin . Appelez ça git- et il sera disponible sous forme git .


2 commentaires

Ok, je connais des options pour diff et statut, mais j'aimerais une meilleure chose. Un script est une option posable.


Ceci est un bon candidat à la liste GIT. Ils pourraient vous donner une réponse définitive et si cette réponse est "non", un patch pourrait être proposé.



3
votes

afin de fermer cela, non , il n'y a pas d'option par défaut pour cela (malheureusement).


1 commentaires

Cela semble toujours être vrai sur Git V2.7.0.



-1
votes

Voulez-vous dire cela?

git config --global core.ignore sale

qui écrit la préférence à votre fichier ~ / .gitconfig .


3 commentaires

Je ne pense pas que ça marche. Au moins, cela ne fonctionne pas pour moi (git 1.8.5).


@brianchements Quelle version prend en charge cette option?


J'utilise Git 1.9.1 sur Ubuntu 14.04. Mais sur la deuxième revisit, je pense que cela ne fonctionne pas pour moi non plus. Mais là encore, vous alerter sur "Nouveaux commettre" et "Contenu non établi" pour mes sous-modules, c'est le comportement que je voulais de toute façon peut-être que j'ai mal compris la question de l'OP.



5
votes

Notez que même s'il y avait une telle configuration, GIT 2.0.1 (25 juin 2014) vous montrerait toujours une sous-module qui a été mise en scène.

voir COMMITE 1D2F393 par Jens Lehmann ( Jlehmann )

Réglage actuellement Sumouule. .ignore et / ou diff.ignoresubmodules à " Tout " supprime toutes les modifications de sous-module pour la famille de diff, le statut et la validation.

pour le statut et commettre cela est vraiment déroutant, car même lorsque l'utilisateur choisit d'enregistrer un nouveau commit pour une sous-module ignorée en l'ajoutant manuellement, ce changement ne s'affiche pas sous les modifications à des changements à être engagés. .
Pour ajouter une insulte à une blessure, une "GIT commit" ultérieure sera une erreur avec " rien à valider " lorsque seules les sous-modules ignorées sont organisées.

correction que en faisant wt_status Toujours imprimer les modifications de sous-module d'impression, quel que soit ce que Ignorer les paramètres sont configurés.
La seule exception est que l'utilisateur utilise explicitement le " - Ignorer-Sumdoudules = Toutes les options de ligne de commande ", dans ce cas, la sortie de la sous-sodule est toujours supprimée.
Cela rend également " git valte " fonctionne à nouveau lorsque seules les modifications des sous-modules ignorées sont Stage, comme cette commande utilise le membre "engagable" du wt_status struct pour déterminer si des modifications mises en scène sont présentes.

Voir aussi commettre C215D3D pour le GIT COMMIT partie .


1 commentaires

Même affaire pour Git-Gui: github.com/git/git/commit/...



3
votes

Aujourd'hui j'ai découvert qui peut utiliser git config code> pour modifier le fichier .gitmodules code>, et peut donc ajouter l'indicateur d'ignorer sans entrer dans le fichier et ajouter la ligne À la main:

git config -f .gitmodules submodule.actionbarsherlock.ignore dirty


0 commentaires

0
votes
git config -f .gitmodules submodule.tests.ignore all

1 commentaires

Bien que ce code puisse résoudre la question, , y compris une explication de la manière et pourquoi cela résout le problème aiderait vraiment à améliorer la qualité de votre post et aboutit probablement à des votes supplémentaires. N'oubliez pas que vous répondez à la question pour les lecteurs à l'avenir, pas seulement la personne qui demande maintenant. S'il vous plaît Modifier Votre réponse Pour ajouter des explications et donner une indication de quelles limitations et hypothèses s'appliquent.