2010-04-03 18 views
6

Ich habe zwei verschiedene .Net Projekte auf Github gehostet.Freigabecode zwischen zwei verschiedenen git Projekte

Ich mag eine gemeinsame „commons“ Bibliothek für die beiden Projekte erstellen.

Wie soll ich meine Repository-Struktur diese gemeinsame Nutzung zu erleichtern?

Idealerweise eine Änderung in dieser gemeinsamen Bibliothek in einem Projekt leicht in das anderen Projekt geschoben werden kann. Ich ziehe den Code selbst editierbar aus den beiden Projekten zu halten (in Visual Studio), und nicht als Bibliothek. Gibt es dafür Best Practices?

Antwort

6

können Sie die Git Submodule verwenden: https://git-scm.com/book/en/v2/Git-Tools-Submodules

+0

Sie tun 'git Submodul path-to-shared-repository' fügen in jedem Repository. Ein Unterverzeichnis mit dem Namen des gemeinsam genutzten Repositorys wird erstellt. Diese Frage ist hier relevant: http://stackoverflow.com/questions/1462754/what-ist-the-advantage-of-using-git-submodules-over-having-a-repo-inside-andere –

+1

Das ist so komisch . Ich wollte nur einen kaputten Link reparieren. Ich konnte es nicht machen, weil es zu klein war, frag mich nicht warum. Ich wusste nicht, was ich hinzufügen sollte, weil ich von Submodulen nichts wusste. Also fügte ich einen Satz hinzu, damit ich den defekten Link reparieren konnte. Es wurde angenommen. Später, als ich versuchte, diesen nutzlosen Satz durch etwas Nützlicheres zu ersetzen, wurde er abgelehnt. Wir bleiben also bei diesem nutzlosen Satz. –

0

Git Submodule ist wahrscheinlich nicht die Antwort. Sehen Sie diesen Blogpost, die in weiteren Einzelheiten geht: http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/

+0

In Bezug auf git-subtree (aus Ihrer Referenz): Der Nachteil ist, dass alle Ihre Unterprojektdateien im übergeordneten Repository vorhanden sind, was bedeutet, dass Sie einige der Gründe für die ursprüngliche Aufteilung Ihrer Projekt-Repositories aufgeben: mit einem kanonischen Repository für einen bestimmten Satz von gemeinsam genutztem Code. Wenn jemand Änderungen an einem Teilprojekt vornimmt, können diese Änderungen lokal mit anderen Änderungen zusammengeführt werden. Diese Änderungen müssen jedoch explizit aus dem Projekt entfernt werden, wenn sie für Projekte freigegeben werden sollen. –

+0

Aber ich stimme zu, dass einige andere Optionen https://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/ vielleicht besser sind. –

Verwandte Themen