Ich erledige häufig die gleiche Aufgabe, indem ich Änderungen festschreibe und an einen Remote-Zweig weiterleite. Da ich manchmal faul war, musste ich eine Reihe von Git-Befehlen einfügen, um diese Schritte automatisch auszuführen:
cd D:\wamp\www\projectName
git checkout dev
git add .
git commit -am "made changes"
git push
pause
Ich habe auch versucht:
cd D:\wamp\www\projectName
call git checkout dev
call git add .
call git commit -am "made changes"
call git push
pause
und
cd D:\wamp\www\projectName
git.exe checkout dev
git.exe add .
git.exe commit -am "made changes"
git.exe push
pause
Bis auf das Finale funktioniert alles push
Befehl. Hier ist die Ausgabe:
D:\wamp\www\givingcircle>git checkout dev
Already on 'dev'
Your branch is ahead of 'origin/dev' by 1 commit.
D:\wamp\www\givingcircle>git add .
D:\wamp\www\givingcircle>git commit -am "made changes"
# On branch dev
# Your branch is ahead of 'origin/dev' by 1 commit.
#
nothing to commit, working directory clean
D:\wamp\www\givingcircle>git push
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
D:\wamp\www\givingcircle>pause
Press any key to continue . . .
Wie man sieht, z push
Ich bekomme:
D:\wamp\www\givingcircle>git push
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Wenn ich die obigen Befehle über die Git-Shell selbst ausführe, funktioniert alles einwandfrei. Ich habe auch git zu Windows Path env-Variablen hinzugefügt.
Hat jemand eine Idee, warum es auf der Git-Shell und nicht auf dem Batch-Befehl funktioniert? (obwohl andere Befehle funktionieren, aber nicht push
)
Es kann wahrscheinlich den ssh-Agenten nicht finden. Versuchen Sie, die zu lesen
SSH_AUTH_SOCK
Umgebungsvariable aus der Git-Shell und Definieren dieser Variablen in der Windows-Shell.– Barend
5. Dezember 2013 um 10:45 Uhr
@Barend: Danke, aber wie lese und definiere ich es?
– Dev01
5. Dezember 2013 um 10:57 Uhr
Im bash: die Portnummer ist, die der echo-Befehl zurückgegeben hat).
echo $SSH_AUTH_SOCK
. Im cmd:set SSH_AUTH_SOCK=<value>
(wobei– Barend
5. Dezember 2013 um 11:38 Uhr
Ich habe dies bei cmd ausgeführt und dann die bat-Datei ausgeführt, aber immer noch das gleiche Ergebnis:
set SSH_AUTH_SOCK=/tmp/ssh-AxHhVr4004/agent.4004
und auch gelaufenset SSH_AUTH_SOCK=4004
– Dev01
5. Dezember 2013 um 11:50 Uhr