1325 Stimmen

Wie gebe ich einen Benutzernamen und ein Passwort an, wenn ich "git clone git@remote.git" ausführe?

Ich weiß, wie man einen Benutzernamen und ein Passwort für eine HTTPS-Anfrage wie diese bereitstellt:

git clone https://username:password@remote

Aber ich würde gerne wissen, wie ich einen Benutzernamen und ein Passwort für die Fernbedienung angeben kann:

git clone git@remote.git

Ich habe es auf diese Weise versucht:

git clone username:password@git@remote.git
git clone git@username:password@remote.git
git clone git@remote.git@username:password

Aber sie haben nicht funktioniert.

11voto

maoizm Punkte 584

Ich bevorzuge die Verwendung von GIT_ASKPASS Umgebung für die Bereitstellung von HTTPS-Anmeldeinformationen für Git.
Vorausgesetzt, Login und Passwort werden in USR y PSW Variablen hinterlässt das folgende Skript keine Spuren des Kennworts im Verlauf und auf der Festplatte + es ist nicht anfällig für Sonderzeichen im Kennwort:

GIT_ASKPASS=$(mktemp) && chmod a+rx $GIT_ASKPASS && export GIT_ASKPASS

cat > $GIT_ASKPASS <<'EOF'
#!/bin/sh
exec echo "$PSW"
EOF

git clone https://${USR}@example.com/repo.git

NB : Einfache Anführungszeichen um die heredoc-Markierung beachten 'EOF' was bedeutet, dass das temporäre Skript buchstäblich $PSW Zeichen, nicht das Passwort / der erweiterte Wert von PSW variabel

5voto

Rohan Punkte 3246
git config --global core.askpass

Führen Sie dies zuerst aus, bevor Sie auf die gleiche Weise klonen, dann sollte es klappen!

3voto

Michael M Punkte 1173

Dies ist eine ausgezeichnete Stack Overflow Frage, und die Antworten waren sehr lehrreich, so dass ich in der Lage war, ein lästiges Problem, das ich vor kurzem lief in zu beheben.

Die Organisation, für die ich arbeite, verwendet Atlassian's BitBucket Produkt (nicht Github), im Wesentlichen ihre Version von GitHub, so dass Repositories vollständig vor Ort gesichert werden können. Ich hatte ein ähnliches Problem wie @coordinate: Für ein neues Repository, das ich auscheckte, war mein Passwort erforderlich. Meine Anmeldedaten waren global für alle BitBucket Ich bin mir also nicht sicher, was der Grund für den Verlust der Berechtigungsnachweise ist.

Kurz gesagt, ich konnte den folgenden GIT-Befehl eingeben (mit nur meinen Benutzernamen), woraufhin mich der Credential Manager von Git zur Eingabe des Passworts aufforderte, das ich dann auch speichern konnte.

git clone https://user@code.domain.org/git/[organization]/[team]/[repository.git]

HINWEIS: Die in Klammern gesetzten Verzeichnisunterpfade beziehen sich lediglich auf interne Verweise und sind für Sie unterschiedlich!

1voto

Torge Rosendahl Punkte 417

Wenn Sie die Anmeldeinformationen in einer beliebigen Anmeldeinformationshilfe gespeichert haben, diese aber nicht so konfiguriert haben, dass sie global aktiv ist, können Sie wie folgt klonen:

git clone https://git.example.com/ns/repo.git --config=credential.helper=store

Dies setzt die credential-helper-Konfiguration lokal (nur für das neue Repository) vor dem Klonen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X