Was ist in GitHub der konzeptionelle Unterschied zwischen einem Projekt (das in einem Repository erstellt werden kann) und einem Repository?
Ich habe in SO mehrere ähnliche Fragen ( hier , hier und hier ) gesehen, aber keine erklärt, was ein GitHub-Projekt ist, was ein GitHub-Repository ist und wann jede einzelne von ihnen verwendet werden muss.
Ich würde mich freuen, wenn jemand jeden Begriff erklären und ein Beispiel dafür geben kann, wann jeder verwendet / erstellt werden soll. Wenn ich beispielsweise mehrere voneinander unabhängige Prototypanwendungen habe, was erstelle ich, um den Quellcode für alle auf organisierte Weise zu verwalten?
git
github
version-control
repository
Carlossierra
quelle
quelle
Antworten:
GitHub hat kürzlich eine neue Funktion namens Projekte eingeführt . Dies bietet eine visuelle Tafel, die typisch für viele Projektmanagement-Tools ist:
Ein Repository wie auf GitHub dokumentiert:
Ein auf GitHub dokumentiertes Projekt :
Ein Teil der Verwirrung besteht darin, dass die neue Funktion "Projekte" im Widerspruch zur überlasteten Verwendung des Begriffs " Projekt" in der obigen Dokumentation steht.
quelle
Fakt 1: Projekte und Repositories waren auf GitHub immer Synonyme.
Fakt 2: Dies ist nicht mehr der Fall.
Es gibt viel Verwirrung über Repositories und Projekte. In der Vergangenheit wurden beide Begriffe von den Benutzern und der eigenen Dokumentation des GitHub ziemlich austauschbar verwendet. Dies spiegelt sich in einigen der Antworten und Kommentare wider, die die subtilen Unterschiede zwischen diesen Begriffen erklären und erklären, wann der eine dem anderen vorgezogen wurde. Der Unterschied war immer subtil, z. B. dass der Issue-Tracker Teil des Projekts war, aber nicht Teil des Repositorys, was man als reine Idiotie usw. betrachten könnte.
Nicht länger.
Derzeit beziehen sich Repos und Projekte auf verschiedene Arten von Entitäten mit separaten APIs :
Seitdem ist es nicht mehr richtig, das Repo als Projekt zu bezeichnen oder umgekehrt. Beachten Sie, dass dies in der offiziellen Dokumentation häufig verwechselt wird und es bedauerlich ist, dass ein bereits weit verbreiteter Begriff als Name der neuen Einheit gewählt wurde. Dies ist jedoch der Fall, und wir müssen damit leben.
Die Folge ist, dass Repos und Projekte normalerweise verwirrt sind und jedes Mal, wenn Sie über GitHub-Projekte lesen, müssen Sie sich fragen, ob es wirklich um die Projekte oder um Repos geht. Hätten sie einen anderen Namen oder eine Abkürzung wie "proj" gewählt, könnten wir wissen, dass es sich um den neuen Entitätstyp, ein genaues Objekt mit konkreten Eigenschaften oder eine allgemein sprechende repoähnliche projektische Art handelt.
Der Begriff, der normalerweise eindeutig ist, ist "Projektvorstand" .
Was können wir aus der API lernen?
Der erste Endpunkt in der Dokumentation der Projekt-API:
wird beschrieben als: Liste der Repository-Projekte . Dies bedeutet, dass ein Repository viele Projekte haben kann. Diese beiden können also nicht dasselbe bedeuten. Es enthält Antwort, wenn Projekte deaktiviert sind :
Dies bedeutet, dass bei einigen Repos Projekte deaktiviert werden können. Auch dies kann nicht dasselbe sein, wenn in einem Repo Projekte deaktiviert werden können.
Es gibt einige andere interessante Endpunkte:
POST /repos/:owner/:repo/projects
POST /orgs/:org/projects
aber es gibt keine :
Erstellen Sie ein Benutzerprojekt -POST /users/:user/projects
Was uns zu einem weiteren Unterschied führt:
1. Repositorys können Benutzern oder Organisationen gehören.
2. Projekte können Repositorys oder Organisationen gehören
oder, was noch wichtiger ist:
1. Projekte können zu Repositorys gehören, aber nicht umgekehrt.
2. Projekte können zu Organisationen gehören, aber nicht zu Benutzern.
3. Repositorys können zu Organisationen und Benutzern gehören
Siehe auch:
Ich weiß, dass es verwirrend ist. Ich versuchte es so genau wie möglich zu erklären.
quelle
GitHub-Repositorys werden verwendet, um alle Dateien, Ordner und anderen Ressourcen zu speichern, die Sie interessieren.
Git-Projekt: Es ist auch eine der Ressourcen im Git-Repository und wird hauptsächlich zum Verwalten der Projekte mit einer visuellen Tafel verwendet. Wenn Sie ein Projekt in Git Repository erstellen, wird eine visuelle Karte wie eine Kanban-Karte erstellt, um das Projekt zu verwalten.
Auf diese Weise können Sie mehrere Projekte in einem Repository haben.
quelle
Im Allgemeinen ist auf GitHub 1 Repository = 1 Projekt . Zum Beispiel: https://github.com/spring-projects/spring-boot . Aber es ist keine harte Regel.
1 Repository = viele Projekte . Zum Beispiel: https://github.com/donhuvy/java_examples
1 Projekte = viele Repositories . Zum Beispiel: https://github.com/zendframework/zendframework (1 Projekt mit dem Namen Zend Framework 3 hat 61 + 1 = 62 Repositorys, glauben Sie nicht? Lassen Sie die Module + das Haupt-Repository von Zend Frameworks zählen)
Ich stimme dem Kommentar von @Brandon Ibbotson voll und ganz zu :
quelle
In Bezug auf das Git-Vokabular ist ein Projekt der Ordner, in dem sich der eigentliche Inhalt (Dateien) befindet. Während Repository (Repo) der Ordner ist, in dem git jede Änderung im Projektordner aufzeichnet . Aber im Allgemeinen können diese beiden als gleich angesehen werden. Projekt = Repository
quelle
Der konzeptionelle Unterschied in meinem Verständnis ist, dass ein Projekt viele Repos enthalten kann und dass sie unabhängig voneinander sind, während gleichzeitig ein Repo viele Projekte enthalten kann. Repo ist nur ein Speicherort für Code, während ein Projekt eine Sammlung von Aufgaben für eine bestimmte Funktion ist.
Ist das sinnvoll? In einem großen Repo können viele Projekte gleichzeitig von verschiedenen Personen bearbeitet werden (viele verschiedene Funktionen werden einem Monolithen hinzugefügt). In einem großen Projekt können viele kleine Repos vorhanden sein, die separat sind, aber Teil desselben Projekts sind und mit jedem interagieren andere - Microservices? Es ist eine persönliche Einstellung zu dem, was Sie tun möchten. Ich denke, dass Repo (Speicher) vs Projekt (Aufgaben) der Hauptunterschied ist - wenn ich falsch liege, lass es mich wissen / erklären! Vielen Dank.
quelle
Dies ist mein persönliches Verständnis für das Thema.
Für ein Projekt können wir die Versionskontrolle über verschiedene Repositorys durchführen. Und für ein Repository kann es ein ganzes Projekt oder einen Teil von Projekten verwalten.
In Bezug auf Ihr Projekt (mehrere Prototypanwendungen, die von jedem unabhängig sind). Sie können das Projekt über ein Repository oder über mehrere Repositorys verwalten. Der Unterschied:
Verwalten durch ein Repository. Wenn eine der Anwendungen geändert wird, wird das gesamte Projekt (alle Anwendungen) auf eine neue Version festgeschrieben.
Verwalten durch mehrere Repositorys. Wenn eine Anwendung geändert wird, wirkt sich dies nur auf das Repository aus, das die Anwendung verwaltet. Die Version für andere Repositorys wurde nicht geändert.
quelle