Question

Je suis connecté en tant qu'utilisateur d'Un sur ma machine, mais mon pensions de titres sont accessibles par leur nom d'utilisateur B sur le serveur que je tire de.L' .gitmodules fichier a url = ssh://domain.com/abc/def.git.

Comment puis-je configurer git pour utiliser un nom d'utilisateur B au lieu de A, quand je fais git submodule update?

Était-ce utile?

La solution

Je suppose que le sous-module a déjà été initialisé, donc git config --list | grep ^submodule montre quelque chose comme submodule.my-submodule.url=ssh://domain.com/abc/def.git.

Si vous n'avez pas encore exécuté git submodule update pour la première fois, alors vous pouvez simplement modifier cette option de configuration, par exempleavec:

git config submodule.my-submodule.url ssh://B@domain.com/abc/def.git

En revanche, si le sous-module a déjà été mis à jour qu'une fois, alors origin dans le sous-module aura été définie à ce que cette option de configuration spécifié.Dans ce cas, vous aurez besoin de le faire:

cd my-submodule
git config remote.origin.url ssh://B@domain.com/abc/def.git

C'est juste un peu déroutant, j'ai peur, mais submodules sont très flexibles.J'ai fait une tentative pour expliquer certains de ces détails dans un post de blog.

Autres conseils

Alors que la solution ci-dessus fonctionne, j'ai trouvé une autre solution qui convient le mieux à mes besoins, et peut-être l'origine du demandeur.Je voulais un moyen de spécifier le nom d'utilisateur par défaut pour tous git opérations sur un serveur distant au lieu d'avoir à modifier le git configs pour chaque projet.La solution n'est pas vraiment plus rien avoir à faire avec git, mais ssh.

Simplement ajouter ces lignes dans votre ~/.ssh/config:

Host domain.com
User B

(remplacer domain.com avec le domaine de votre serveur git.) Maintenant, même si vous êtes connecté à votre ordinateur local en tant qu'utilisateur, SSH utilisation de B comme le nom d'utilisateur lors de la connexion au serveur.

Maintenant, vous pouvez exécuter git submodule update sans avoir à ajouter un nom d'utilisateur dans le git config.

La réponse courte est "vérifier si vous pouvez utiliser des chemins relatifs pour les submodules'

Le détail est, Nous avons sous-module qui est utilisé par plusieurs applications.Nous avons gardé le sous-module dans le même repo.

La structure est comme ça, repo

|-app1
|-app2
|-submod

Quand on clone de l'application de l'app/.git/config obtient l'url avec l'utilisateur en cours comme 'userA@repo.com' Dans l' .gitmodules d'applications que nous donner l'url '../submod' De cette manière, quand nous faisons de 'sous-module init', git génère une url absolue pour le sous-module à partir de l'url relative, nous avons donné dans .gitmodules.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top