PHP Git Pull mit speziellem Verzeichnis

Cr41s3

Ensign
Registriert
Dez. 2012
Beiträge
246
Hallo zusammen.

Ich würde gerne ein PHP Script schreiben, mit dem ich ganz einfach neue Updates aus der repository ziehen kann.

Folgenden Ansatz habe ich:
PHP:
shell_exec("cd C:\Program Files (x86)\Git\bin\ && git --work-tree=/c/Users/Administrator/Desktop/Server/Web/kreisdev/public_html/ pull 2>&1");
Das Problem ist, ich muss den Ersten Pfad so setzen, ansonsten kann ich git nicht ausführen.
Zweites Problem, die Repository liegt in einem anderen Verzeichnis.
Habe auch schon versucht mit git -C pfad.. den Pfad für die Repo einzustellen, geht aber auch nicht.
Folgender Error:
Code:
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Rechte und SSH Keys gehen, wenn ich ganz langweilig git pull in der Git Bash mache.
Muss an dem Verzeichnis liegen.

MfG-
 
Hi,

funktioniert der "shell_exec" ohne ihn per PHP auszuführen? Ich würde sagen, dass du nach dem "cd" nochmal Anführungszeichen um pfade brauchst, die Leerzeichen enthalten. Kannst du den Command-Parameter mal direkt auf der CMD ausführen?

Also das hier "cd C:\Program Files (x86)\Git\bin\ && git --work-tree=/c/Users/Administrator/Desktop/Server/Web/kreisdev/public_html/ pull 2>&1"

VG,
Mad
 
fatal: Not a git repository..
Das Problem ist der 2. Pfad.
Keine Ahnung, wie ich den setzen kann.
In der CMD kann es auch nicht gehen.
 
Hi,

gut, dann ist es schon mal kein PHP Problem, sondern ein Problem des Commandstrings. Lies das Manual durch und prüfe, wie die Command richtig aussehen muss! Bau sie entsprechend um, pack sie in den shell_exec und fertig.

VG,
Mad
 
Deswegen Frage ich..
Es liegt am git command, aber es gibt -C und --work-tree und beides geht nicht.
Ergänzung ()

Habe das mit dem Verzeichnis nun beehoben:
"C:\Program Files (x86)\Git\bin\"git pull

Aber bekomme nun folgenden Error:
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Verzeichnis ist richtig, aber komischer Weise geht es nicht, ABER per Git Bash geht es mit dem selben Befehl :/
 
Zurück
Oben