2016-06-03 10 views
3

Ich baue eine Web-Anwendung, die 2 separate Komponenten hat: Das Front-End, das im Browser des Benutzers läuft (Javascript + Angular) und ein Back-End-REST API (Python/Django), das auf meinem Server läuft und Feeds Daten an alle Front-Ends. Die beiden Teile dieser App werden in zwei separaten Git-Repositories gespeichert und in BitBucket gespeichert.Wie kann ich eine Datei mit Git & Bitbucket zwischen zwei Repositories teilen?

Das Front-End zeigt dem Benutzer die Daten an und gewinnt ein schönes Interface, das viele nette CSS definiert hat. Das Back-End sendet E-Mails an die Benutzer.

Ich möchte, dass das Look-and-Feel der E-Mails genau mit dem Display des Frontends übereinstimmt. Alle Interaktion des Benutzers sollte eine einheitliche Präsentation haben. Also wo/wie sollte ich das CSS so platzieren, dass es in beiden Repositories verfügbar ist, aber ich muss es nur an einem Ort ändern?

Wie mache ich das mit den Werkzeugen, die ich benutze: Git & Bitbucket?

Antwort

1

Schreiben Sie ein Skript in den git pre-commit Hook, wenn die CSS-Datei geändert wird, könnte das Skript die Änderung an BitBucket weitergeben. Siehe

git help githooks 
+0

In welches Repository sollte es geschoben werden? Wie verwende ich die gleiche Datei in zwei verschiedenen Repositories? –

5

Ich denke, die CSS zusammen in einem separaten „dritten“ Projekt sein sollten.

Vor allem, weil Sie vielleicht wollen, dass die nette CSS für ein anderes Projekt wiederverwenden, oder brechen Sie die vorhandenen Projekte in mehrere Repositories.

So ist die Strategie:

  1. Erstellen Sie eine dritte Repository, z.B. project_css
  2. In beiden aktuellen Projekten fügen Sie Referenzen zu diesem Repository hinzu, indem Sie git subtree oder git submodule verwenden.

Zum Beispiel, wenn Sie git subtree bevorzugen die dritte Projektdateien Teil jedes der beiden bestehenden Projekte haben, können Sie ein Blog/tutorial wie diese folgen:

https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/

Ob Verwenden Sie git subtree oder git submodule, das hängt von den Kompromissen ab, mit denen Sie einverstanden sind.

1

Sie können die beiden Repositorys durch Hinzufügen eines zweiten Remote-Repositorys zu einem zusammenführen.

Es ist einfacher zu pflegen.

Wählen Sie eines Ihrer Repositories, nennen wir es repo1. Der erste Schritt besteht darin, ein zweites Remote-Repository mit der Bezeichnung repo2 in repo1 hinzuzufügen. Das ist dein zweites Projekt. Dann hole die Zweige von repo2 in deine repo1. Alle Zweige sitzen "glücklich" in einem Repository zusammen.

Der nächste Schritt besteht darin, die Hauptlinien der beiden Projekte in einem Zweig zusammenzuführen. Dies funktioniert einwandfrei, wenn die Ordner und Dateien nicht miteinander "kollidieren". Möglicherweise müssen Sie vorher bestimmte Ordner umbenennen.

Jetzt sitzen beide Projekte zusammen und können die CCS-Dateien teilen. Danach können Sie repo2 ignorieren.

Die gesamte Operation wird in Ihrem lokalen Repository durchgeführt. Wenn Sie fertig sind, schieben Sie alles auf einen zentralen Server wie BitBucket.

Das Konzept ist, dass ein Git-Repository nur ein "Haus" für Filialen ist. Und es ist in Ordnung, wenn diese Zweige keinen gemeinsamen Vorfahren haben. Wir haben diese Methode verwendet, um die Anzahl der Repositories von Projekten zu reduzieren, die sehr eng zusammenarbeiten.

Verwandte Themen