Wie man Config git von http und Push durch ssh in einem ‚remote‘ ziehen?
-
30-09-2019 - |
Frage
Ziehen von HTTP-Authentifizierung zu entkommen (so dass ich nicht zu Typ Passwort brauche, wenn ich nicht ssh.keygen verwenden).
Pushing durch ssh mit Authentifizierung.
Lösung
Von der git-config
Manpage :
remote.<name>.url
Die URL eines Fern Repository. Siehe GIT-Fetch (1) oder git-Push (1).
remote.<name>.pushurl
Die Push-URL eine Remote-Repository. Siehe git-Push (1).
Versuchen Sie, die früher zu einer http:
URL und diese zu einem git+ssh:
(oder nur git:
) URL setzen?
Andere Tipps
Original Antwort, für Push durch ssh in ein 'remote' : dies gilt nur für ein Repo, die aktuelle:
Wenn Sie eine git remote -v
haben, die eine https-URL für "origin
" zurückgibt, können Sie Folgendes eingeben:
git config remote.origin.pushurl git@github.com:aUser/aRepo
Oder besser gesagt:
git remote set-url --push git@github.com:aUSer/aRepo
Wie bemerkt hier :
Es ist nicht funktionell anders, als
set-url
intern landet nur Config aufrufen. Aberset-url
wird sich beschweren, wenn Sie den Befehl Teil „git remote set-url --push
“ vertippen, während git Config wird leise vertippt Optionen akzeptieren, aber nicht, um tatsächlich die Fernbedienung des URL gesetzt.
Unter git-Referenz (hier angepasst):
$ git remote -v
origin https://github.com/schacon/git-reference.git (fetch)
origin https://github.com/schacon/git-reference.git (push)
$ git remote set-url --push origin git@github.com:schacon/git-reference.git
$ git remote -v
origin https://github.com/schacon/git-reference.git (fetch)
origin git@github.com:schacon/git-reference.git (push)
Im Rahmen der Prämie, JWW fügt hinzu:
Das möchte ich auf alle github.com anzuwenden und nicht nur meine repos
Dann git remote
ist nicht die Antwort.
Nur url.<base>.pushInsteadOf
würde gelten für alle repos:
Jede URL, die beginnt, mit diesem Wert wird nicht geschoben werden; stattdessen wird es neu geschrieben, mit zu beginnen, und der resultierenden URL zu schieben. I
So:
git config --global url."git@github.com:".pushInsteadOf https://github.com/
# or
git config --global url."ssh://git@github.com/".pushInsteadOf https://github.com/
habe ich erwähnt, dass die Option im Jahr 2014 in „ Git: wie die Öffentlichkeit zu erhalten, read-only git: // URL “.
Die --global
Option wird das angewendet machen alle repos, nicht nur die aktuelle.