Ich habe meine git Arbeitsstruktur wie folgt festgelegt (dank einer Empfehlung in einer anderen Frage git : Small project work)git Haken Erlaubnis Problem
/live/website
|
|
/path/to/staging (bare)
| |
| |
dev1 dev2
Derzeit sind sowohl dev1 und dev2, drücken Sie die Projekte zum /path/to/staging repo
. Ich habe einen Haken in/path/to/staging, der automatisch eine git pull
von meiner/live/Website auslöst. Auf diese Weise habe ich eine Arbeitskopie von Dateien dort.
Auch /path/to/staging (bare)
wurde mit share = 0777 initialisiert, so dass ich weiß, dass der Anteil kein Problem ist. Außerdem habe ich alle Dateien auf 777 CHMODded und setze auch das Stick-Bit.
Ich habe die/live/Website Repo als user : root
erstellt. Allerdings habe ich den Repo in dev1 als user : dev1
erstellt. Ich kann Änderungen in dev1 fein machen, aber wenn ich versuche, den Repo von dev1 zu drücken, dann ist hier das Problem, das ich konfrontiert:
error: Couldn't set refs/remotes/origin/master
From /path/to/staging
! 8b4fddc2 .. e2a0b21 master -> origin/master (unable to update local ref)
To path/to/staging
8c5fddc2 .. e2a0b21 master -> master
Und im Grunde, sehe ich nicht die Dateien erfolgreich auf/live/Website übertragen. Ich denke, dieses Problem tritt auf, da ich den Code als user : dev1
ausführe. Wenn ich jedoch zu /live/websit
e blättern und eine git pull
manuell als user : root
mache, zieht es die von dev1 vorgenommenen Änderungen erfolgreich durch und ändert die Arbeitsdatei.
Kann jemand empfehlen, wenn es eine Möglichkeit gibt, dieses Problem zu umgehen? Da es der Zweck des automatischen Haken schlägt ...
Etwas anderes, dass ich zu tun dachte in dem Haken war, wurde ich zu denken, den Benutzer zu ändern:
su root
password
Allerdings, wenn es ausgeführt wird, ich glaube nicht, daß ich das Passwort an der Eingabeaufforderung eingegeben haben, da die Fehlermeldung erhalte ich ist:
hooks/post-receive: line 18: password: command not found
EDIT,
Kann jemand auch einen Weg vorschlagen, von einem Stoß zurückzugehen? Und den vorherigen Stand der Dateien abrufen?
Rudi: Ich schaute auf diese Datei und es heißt, ich kann nur ändern, indem Sie Sudo Visudo tun. Wenn ich dies jedoch versuche und ausführe: 'sudo: visudo: Befehl nicht gefunden'. Mit der Bearbeitung habe ich also Probleme. In Bezug auf die Git-Verzeichnisstruktur, wissen Sie, warum ich Probleme habe, den Pull auszuführen? Ich meine, die '/ live/Website' ist ein gemeinsames Repository. Ich stellte sicher, dass ich es so gemacht habe, indem ich 'git repo-config core gemacht habe.sharedRepository true' – g1t
Können Sie su in den root-Account und visudo dort ausführen? On debian visudo ist im sudo-Paket (http://packages.debian.org/lenny/i386/sudo/filelist) und lebt in/usr/sbin/visudo. – Rudi
Was den '/ live/website' Teil betrifft: Haben Sie das '/ path/to/staging' Repo schon eingerichtet? Wenn ja, muss die '/ live/Website' ein nicht-bare Repo sein, da die Dateien dort erscheinen sollen. Ich schlage vor, den aktuellen '/ live/website' Pfad weg zu verschieben und ihn durch einen normalen Klon von'/live/website' zu ersetzen. – Rudi