2012-03-27 19 views
0

Ich möchte einen drei Zweig-Setup auf meinem Repository haben:Niemals bestimmte Ordner in andere Zweige zusammenführen?

  • Meister
  • nächsten
  • entwickeln

"Entwickeln" wird, wo die laufende Entwicklung stattfindet. In diesem Entwicklungszweig möchte ich meine Unit-Tests haben, aber ich möchte die Unit-Tests aus den anderen beiden Zweigen heraushalten. Im Idealfall möchte ich, dass der Ordner "tests" im Zweig "develop" nie mit einem anderen Zweig zusammengeführt wird. Ist das möglich?

+1

Ich verstehe nicht, warum Sie nicht möchten, dass Ihre Tests Teil des Master-Codes sind. –

+0

Es muss nicht sein - es kann in einem separaten Zweig sein, aber Sie können immer noch den Kern Ihres Codes in einem separaten Zweig verkaufen. – Abizern

Antwort

2

Es ist möglich, einen anderen Zweig zu haben, der die Tests enthält, und einen Produktionszweig, der nur den Code enthält, den Sie verwenden möchten.

Ich mache das selbst mit Cocoa-Klassen, wo ich die Klasse teilen möchte, aber auch ein Beispielprojekt, das zeigt, wie man die Klasse benutzt, aber ich will nicht den ganzen zusätzlichen Code, wenn ich ' m es als Submodul verwenden.

Der Trick besteht darin, alle Ihre Arbeit mit Tests und Beispielen in der Hauptzweig oder Entwicklungszweige, die mit der Hauptzweig zusammenführen. Und dann erstellen Sie einen anderen Zweig (in meinem Fall nenne ich das production Zweig), wo Sie eine git rm auf alle Nebenstellencode tun.

Jetzt ist der Trick, keine Entwicklung in diesem Produktionszweig zu machen. Arbeiten Sie nur am Hauptzweig und fügen Sie den Master-Zweig in regelmäßigen Abständen in den Produktionszweig ein (falls gewünscht). Git "merkt", dass der Subsidiary Code entfernt wurde, und abgesehen von ein wenig Aufräumarbeiten bleibt ein Zweig übrig, der nur den Code enthält, den Sie verwenden/freigeben möchten, aber der Test/Beispielcode ist im Repository noch vorhanden Sie sind jemand, der sich darum kümmert, damit zu arbeiten.

Sie können ein Beispiel dafür auf GitHub mit meiner JCSSheetController Klasse sehen.

+0

Danke für die Tipps. Eine Frage kommt mir in den Sinn. Sagen wir, ich mache eine Veröffentlichung, dann fange ich an, neue Funktionen in einem "Entwicklungszweig" zu entwickeln, der die Tests enthält. Dann habe ich einen Fehler, den ich im Produktionszweig Hotfix muss. Kann ich den Produktionszweig Hotfix installieren und die Änderungen zurück in den Entwicklungszweig bringen, ohne etwas zu vermasseln, seit ich die Tests aus der Produktion entfernt habe? Wenn nicht, wie würden Sie mit dieser Situation umgehen? – TaylorOtwell

+0

Sie nehmen keine Änderungen am Produktionszweig oder den Zweigen des Produktionszweigs vor. Sie nehmen die Änderungen vom Hauptzweig vor. Es ist genau das gleiche wie bei der normalen Entwicklung, bei der Sie einen Abzweig vom Master erstellen würden, um einen Hotfix zu erstellen und ihn wieder mit dem Master zu verbinden. Aber jetzt verschmelzen Sie Master in Ihren Produktionszweig. – Abizern

Verwandte Themen