Question

Je voudrais faire forcer tous les clones / pulls pour obtenir les données de SSH, mais continuez d'utiliser HTTPS pour Push.

Ma commande utilisera toujours https (git clone https://) Et je ne peux pas changer cela (beaucoup de scritps en utilisant) mais je voudrais forcer le clone à utiliser SSH et continuer à utiliser HTTPS pour Push.

Ce que j'ai fait (dans cet ordre):

[url "ssh://server/"]
insteadOf = "https://server/"
[url "https://server/"]
pushInsteadOf = "ssh://server/"

Mais Fetch et Push sont traduits en SSH:

$ git remote -v
origin  ssh://server/repo.git (fetch)
origin  ssh://server/repo.git (push)

Et j'aimerais voir quelque chose comme ceci:

$ git clone https://server/repo.git
$ git remote -v
origin  ssh://server/repo.git (fetch)
origin  https://server/repo.git (push)
Était-ce utile?

La solution

Aussi étrange que cela puisse paraître, vous devrez traduire HTTPS vers HTTPS pour qu'il fonctionne;

[url "ssh://server/"]
insteadOf = "https://server/"
[url "https://server/"]
pushInsteadOf = "https://server/"

Autres conseils

Utilisation git remote set-url --push. À partir de la documentation:

set-url
  Changes URL remote points to. Sets first URL remote points to
  matching regex <oldurl> (first URL if no <oldurl> is given)
  to <newurl>. If <oldurl> doesn’t match any URL, error occurs and
  nothing is changed.

    With --push, push URLs are manipulated instead of fetch URLs.
    With --add, instead of changing some URL, new URL is added.
    With --delete, instead of changing some URL, all URLs matching
      regex <url> are deleted. Trying to delete all non-push URLs is an error.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top