10
votes

Comment configurer gitconfig pour un nom distant par défaut?

Je veux configurer mon git (Tortoisegit) à l'aide du fichier gitconfig global tel que le nom de la télécommande par défaut lorsque je clone un référentiel n'est pas "origine", mais un autre texte définit par moi (par exemple "FOO").

est-ce possible? Quelles directives sont celles?

merci

Edit: L'intention de ceci est que je crée plusieurs référentiels plus petits pour différentes tâches indépendantes (documentation!) Et je suis fatigué de chaque fois que la modification du nom de la télécommande puisqu'elle est disponible en utilisant des actions à d'autres utilisateurs. Donc, le nom de la télécommande doit être le nom de ma machine pour éviter de dérouter les autres versions GIT. Je sais que ce n'est pas la meilleure pratique, mais c'est la vie: (.


0 commentaires

3 Réponses :


-2
votes

Je ne sais pas comment le faire à Tortoisegit, mais il est assez facile de faire en modifiant le fichier de configuration de Repo via la ligne de commande:

$ git remote rename origin foo


1 commentaires

Cette commande n'est valable que lorsque le clone est créé. Cela ne change pas la valeur par défaut pour les nouveaux clones.



7
votes

Il n'y a pas d'option de configuration globale. Vous devrez utiliser git clone --origin foo code> pour changer le nom du référentiel "Origine" lorsque vous le clonez:

--origin <name>, -o <name>  
   Instead of using the remote name origin to keep track of the upstream
   repository, use <name>.


9 commentaires

Cela modifie le nom de l'heure que je clonage le référentiel. Je souhaite pouvoir spécifier le nom une fois et à partir de ce moment-là, toutes les actions clones doivent utiliser ce nom.


Vous ne pouvez pas, alors j'offre la meilleure chose.


On dirait qu'un patch est en ordre.


Est-ce toujours vrai à partir de 2015? J'espère secrètement qu'ils ont ajouté une nouvelle option de configuration au cours des quatre dernières années ...


@YOCHANNAH pourquoi? À quelle fréquence clonage-tu des référentiels que vous devez vous inquiéter? Pourquoi voudriez-vous veux pour changer le nom de la télécommande d'origine?


@meagar parce que je travaille sur un projet open source et la pensée de cloner par inadvertance et de pousser à la télécommande de «maître» avant d'être prête, me donne les Heebie-Jeebies. La dénomination explicite rend cela plus facile. Comparez YOCHANNAH / AWESOMESOREPROJECT et AWESMEODOSPROJECJECJECT / AWESMEOSSPROJECT VS Le moins clair Origine / AWESMEOSPROJECT ET ENCOREME / AWESMEOSSOSPROJECT . C'est beaucoup plus facile à dire lequel est lequel, maintenant, et cela me sauve du temps lorsque je clonage beaucoup de sous-projets si je n'ai pas à renommer les télécommandes aussi souvent.


COALA.IO Recommande les débutants Utilisez en amont , car il y a trop de scripts "utiles" sur Le 'net qui suppose origine est la fourchette ou la fourchette, et ils se tiennent à pied et ils blâment l'outil. S'ils n'ont pas d'origine, les scripts les plus destructeurs échouèrent tôt.


Vous pouvez ajouter un alias pour cela comme: git config --global alias.fooclone 'clone --origin foo' . Ensuite, utilisez-le comme git foxlone .


@meagar, commençant par GIT 2.30.0 (2020-12-27) Ce n'est plus vrai. Maintenant, il y a clonez.defaultremotename , vois ma réponse pour plus de détails. Mais cela les a fallu longtemps pour l'avoir ajouté ...



1
votes

git 2.30.0 (2020-12-27) introduit clonez.defaultremotename code> la valeur de configuration décrite les suivantes:

Le nom de la télécommande à créer lors du clonage d'un référentiel. La valeur par défaut origine code>, et peut être remplacée en faisant passer le - Origine code> option de ligne à git-clone [1] . P> blockQquote>

tout en même temps, le - Origine CODE> Option de ligne de commande de git-clone code> a changé sa description à: p>

Au lieu d'utiliser le nom de la télécommande Origine CODE> Pour garder une trace du référentiel en amont, utilisez code>. Remplace clonez.defaultremotename code> à partir de la configuration. P> blockQuote>

Pour obtenir la valeur Utilisez P>

git config --default origin --get clone.defaultRemoteName


1 commentaires

Fait intéressant, cela signifie qu'à partir de GIT 2.30.0 (2020-12-27) Tout script censé être générique et flexible, ne peut plus supposer qu'après git clone la télécommande est nommée Origine . Maintenant, il doit l'appliquer avec l'argument d'origine ou ensuite utiliser "$ (télécommande git)" pour interroger le nom distant. (Eh bien, il pourrait également utiliser git config pour obtenir défaultremotename mais il ne semble pas avoir des avantages sur git distant pendant qu'il est enclin à change de configuration globale en même temps.)