git commit und push per Batch-Datei unter Windows

Lesezeit: 3 Minuten

Benutzeravatar von Dev01
Dev01

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 pushIch 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: echo $SSH_AUTH_SOCK. Im cmd: set SSH_AUTH_SOCK=<value> (wobei die Portnummer ist, die der echo-Befehl zurückgegeben hat).

    – 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 gelaufen set SSH_AUTH_SOCK=4004

    – Dev01

    5. Dezember 2013 um 11:50 Uhr


Für mich wird Windows standardmäßig ausgeführt .sh Dateien korrekt mit Git Bash. Also würde ich Ihr Skript als normales Bash-Shell-Skript schreiben:

#!/bin/sh
cd /d/wamp/www/projectName
git checkout dev
git add .
git commit -am "made changes"
git push
echo Press Enter...
read

Scotts Benutzeravatar
Scott

Ich hatte ein ähnliches Bedürfnis, Code von BBCloud auf unsere Entwicklungstestserver für Tests der Stufe 1 verschieben zu können.

Dazu habe ich eine geplante Windows-Aufgabe erstellt:

Unter “Aktionen” habe ich hinzugefügt "C:\Program Files\Git\bin\bash.exe" im Feld Programm/Skript (die Anführungszeichen waren erforderlich).

In das Feld “Argumente hinzufügen” habe ich eingegeben c:\path\to\bash script\pull.sh.

Ich habe dann den Taskplaner-Assistenten abgeschlossen (Ausführungshäufigkeit, Zeit usw.).

Ich habe dann ein Bash-Skript mit Nano in Git Bash für Windows erstellt, das Folgendes enthält:

#!/bin/bash
cd /c/path/to/bash script
git pull

Ich würde einen Push in das Repository bevorzugen, der automatisch auf den Testserver gepusht wird, aber Pipes, Webhooks und DeployHQ scheinen keine Lösung für unsere Umgebung zu sein.

Probier diese !!

cd c://TESTS/path
set HOME=%USERPROFILE%
GIT COMMAND GOES HERE
pause

  • Irgendeine Begründung dahinter?

    – Aros

    27. August 2020 um 10:16 Uhr

1429550cookie-checkgit commit und push per Batch-Datei unter Windows

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy