2012-05-10 16 views
9

Sollen ALLE lokal erstellten GIT-Zweige täglich zum zentralen Repository verschoben werden? Was ist der best-Practice-Workflow dazu?Alle lokalen GIT-Zweige drücken? Beste Übung?

Wir haben ein GIT-Repository für die Verwaltung unserer großen E-Commerce-Site eingerichtet, die von einem großen Team ständig weiterentwickelt wird.

Das zentrale Repository ist bei "Beanstalk" und wir haben drei primäre Zweige, "Vorstufen" (Master), "Inszenierung" und "Produktion". Die gesamte Entwicklung sollte in die Vorstufe integriert werden, wenn sie lokal fertiggestellt und veröffentlicht werden kann.

Ich kann lang laufende Zweige zu Beanstalk auch drücken. Einige unserer Team-Befürworter drängen jedoch ALLE lokalen Entwicklungszweige zu Beanstalk auf täglicher Basis im Gange oder nicht; Redundanz schaffen. Ich denke, das würde das Repository im Laufe der Zeit mit Hunderten von Zweigen verstopfen. Was ist die beste Vorgehensweise?

Antwort

7

Ich bevorzuge keine Verschmutzung der zentralen Repo mit alle Filialen von alle Benutzer.

nicht mischen:

+0

Vielen Dank für die tollen Antworten und für die weiteren Anweisungen, wie man eine ordnungsgemäße Sicherung! Dies ist die Route, die wir gehen werden. – Garrick

2

Sie können den Benutzer immer veranlassen, seine Remote-Zweige zu bereinigen, wenn sie damit fertig sind. Es ist keine schlechte Idee, sie dazu zu bringen, ihre Filialen vor Ort aufzuspüren (vor allem, wenn es keine Backup-Lösung auf ihrer Box gibt). Andernfalls, wenn ihre Maschine stirbt, ist ihre lokale Verzweigung verschwunden.

+1

Dies ist das Argument von anderen in meinem Team. Ich kann verstehen, woher du kommst, aber diesem Arbeitsablauf nicht zustimmen. Ich denke, es ist verwirrend "Versionskontrolle" mit "Backup", die zwei separate Aufgaben sind. Vor der verteilten Versionskontrolle hätten Sie niemals Änderungen an mehreren Repositorys als eine Form der Sicherung übertragen. Wenn wir diesen Weg gehen würden, würden wir wahrscheinlich ein zweites "funktionierendes" Master-Repository erstellen, um diese zusätzlichen Zweige zu enthalten und die Leute bitten, sie zu schließen, wenn sie fertig sind. Ich denke nicht, dass wir das tun werden. – Garrick

+1

fwiw ich wählte für die Antwort oben ... Ich pusse nur Zeug zur Fernbedienung, wenn ich es mit anderen teilen muss –

2

Ich stimme Ihnen zu, eine zentrale Repo für die Sicherung der täglichen Arbeit ist eine schlechte Idee. Es sollte Commits enthalten, die geteilt, getestet oder freigegeben werden sollen.

Backup der täglichen Arbeit sollte entweder mit einem anderen Repo passieren, permissiver, mit optional einer automatisierten git push --force --all backup-repo Aufgabe auf jedem Dev-Rechner, oder sie haben ein klassischer Backup-Tool.

+1

Es gibt auch 'git push - Spiegel ', die für die "Backup" Aufgabe nützlich sein könnte, wie es auch löscht lokal gelöschte Zweige. – kostix

+0

Gute Antwort auch, danke CharlesB und Kostix – Garrick