Git branch-abhängige repository

Kalito

Erfahrenes Mitglied
Hallo,

um meine Projekte besser verawalten zu können, möchte ich gerne Git bei mir auf der Arbeit einführen und nutzen. Mit der einfachen und privaten Nutzung bin ich bereits einigermaßen vertraut, aber für folgendes Problem finde ich keinen richtigen Ansatz.

Unser selbst entwickeltes Intranet liegt auf einem Server. Dabei gibt es eine Produktions- und eine Development-Umgebung (letztendlich nur 2 Ordner auf der selben Hierarchie-Ebene). Ich möchte aber nur ein Repository mit den hauptbranches Master und Development pflegen. Sprich wenn ich etwas im Development-Branch commite und pushe, sollen die Änderungen dort sichtbar werden - eine Änderung an der produktivumgebung erfolgt nicht. Erst bei einem Push auf Master sollen die Änderungen dort wirksam werden.
Eigentlich möchte ich keine 2 remote-Repositories anlegen. In wie weit könnte ich hier mir einem bare-Repository arbeiten?

Gruß, Patrick
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi Patrick,

wie du geschrieben hast; Ein Repository mit 2 Branches. Wenn ich dich richtig verstehe, stört dich das doppelte Checkout, oder? Das wird sich kaum vermeiden lassen.

Grüsse,
BK
 

Kalito

Erfahrenes Mitglied
Hallo BK,

das heißt ich habe zwei vollständige Repositorys, die ich beide bei mir lokal clonen muss?

Könnte man eventuell mit Hooks arbeiten? Ich würde auf dem Server ein bare-Repository arbeiten und wenn ich auf dem dev-Branch nen push ausführe, dann werden die Änderungen an das dev-repository weitergeleitet. Und wenn ich über Master-Branch pushe, dann halt auf die Prod-Umgebung.

gruß, Patrick
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi,

hört sich ziemlich kompliziert an. Theoretisch könnte man das sicherlich über Hooks lösen, sind ja normale Shellscripte. Aber wie verfährst du dann mit Tags?

Wie wäre es, wenn du anstatt in ein anderes Repo pusht, einfach die Dateien kopierst in die Webroots? (z.B. per Hook)
Was spricht dagegen zwei Clones auf dem Server zu haben? Wenn du dir um die Grösse Sorgen machst (ein paar 100 MB mehr oder weniger sind mMn nicht so wild; und so gross wie der Linux Kernel wirst du wohl kaum werden), dann könntest du auch mit Shallow-Clones arbeiten (Kurze Einführung oder Manpage)

Grüsse,
BK
 

Kalito

Erfahrenes Mitglied
Hallo, ich habe es erstmal ein wenig anders gelöst.

Auf dem Server habe ich bare-Repository angelegt. Dies habe ich mir lokal geklont und neben den Master-Branch einen development-Branch erstellt. Nun habe ich auf dem Server dieses bare-Repository ebenfalls zweimal geklont (Development und Production). Jeder dieser Klone auf dem Server ist mit einem Branch verbunden. Wenn ich also Änderungen im Development-Branch pushe (lokal ->bare-rep), dann kann ich die Änderungen in den DEV-Klon pullen. Mal sehen, wie ich das noch automatisieren kann.

Danke für die Hilfe.
Patrick
 

Neue Beiträge