Projet vs Dépôt sur GitHub
Dans GitHub, quelle est la différence conceptuelle entre un projet (qui peut être créé à l'intérieur d'un référentiel) et un référentiel?
J'ai vu plusieurs questions similaires (ici, ici et ici) dans l'affirmative, mais aucun d'entre eux explique ce qu'est un projet GitHub, ce qui est un dépôt GitHub et quand utiliser chacun d'eux.
J'apprécierais si quelqu'un peut expliquer chaque terme, et de fournir un exemple de cas d'utilisation/création de chacun. Par exemple, si j'ai plusieurs prototypes d'applications, tous indépendants les uns des autres, que dois-je créer afin de gérer de manière organisée le code source pour tous les?
- Un dépôt github est juste un "répertoire" où les fichiers et les dossiers peuvent exister. D'autres personnes peuvent créer leurs propres copies de ce "répertoire" et de la modifier comme ils le souhaitent, puis demander à ce que leurs variations se mettre dans le dépôt principal. Comme pour les projets, je n'en suis pas sûr car je n'ai jamais utilisé.
- Vous avez dit que vous avez vu la même question, mais avez-vous réellement lu votre premier lien? "C'est un gitorious, pas un git chose. Vous pouvez avoir plusieurs dépôts par projet." et une autre réponse sur ce même thread "Git n'a pas de choses telles que les projets, seuls les dépôts.". Si vous avez en effet fait github projets je suggère de vérifier le github docs à ce sujet help.github.com/articles/...
- oui je l'ai fait. La première phrase affirme ceci: "C'est un gitorious, pas un git chose. Vous pouvez avoir plusieurs dépôts par projet.". Pour moi, il parle de Gitorius, pas de GitHub. Aussi, il est dit que dans Gitorious vous pouvez avoir plusieurs dépôts par projet, mais dans GitHub est l'inverse. Alors, j'apprécierais vraiment si vous pouviez expliquer comment cela est-il répondre à ma question?
- aussi, merci de lire attentivement ma question: je suis en train de parler GitHub, pas Git!
- C'est injuste de voir comment les gens peuvent être si prompts à downvote, mais de ne pas prendre le temps de lire et de digérer ce qui a été demandé!
- Je pense que cela a un impact sur la sémantique où la nouvelle fonctionnalité de Projets visual conseil d'administration - les conflits avec la surcharge de l'utilisation de la durée du Projet. La baisse de vote est probable que ce n'est pas une question de programmation.
- Merci @osowskit. Je pense que c'est la différence, Si vous voulez bien de poster cela comme une réponse et expliquer l'utilisation de la fonction des Projets, je voudrais vous accorder la bonne réponse.
- Ce qui devrait avoir tout ce dont vous avez besoin github.com/blog/...
- Merci @osowskit. Oui, c'est la réponse que je cherchais. Si vous le souhaitez, poster une réponse et je vais le prix de la coche pour vous...
Vous devez vous connecter pour publier un commentaire.
GitHub a récemment introduit une nouvelle fonctionnalité appelée Projets. Cela fournit un visuel du conseil qui est typique de nombreux outils de Gestion de Projet:
Un Référentiel comme documenté sur GitHub:
Un Projet comme documenté sur GitHub:
Une partie de la confusion, c'est que la nouvelle fonctionnalité, les Projets, les conflits avec la surcharge de l'utilisation du terme projet dans la documentation ci-dessus.
Fait 1: les Projets et les Dépôts ont toujours été synonymes sur GitHub.
Fait 2: Ce n'est plus le cas.
Il y a beaucoup de confusion au sujet de Dépôts et de Projets. Dans le passé, les deux termes ont été utilisés assez bien de façon interchangeable par les utilisateurs et le GitHub est très propre documentation. Cela se traduit par quelques-uns des réponses et des commentaires ici qui expliquent les différences subtiles entre ces termes et quand l'un a été préférée à une autre. La différence étaient toujours subtile, par exemple, de la question de traqueur de faire partie de ce projet mais ne fait pas partie du référentiel qui peut être considéré comme strictement git chose etc.
Pas plus.
Actuellement repos et les projets se référer à un différents types d'entités qui ont séparé Api:
Depuis lors, il n'est plus correct d'appeler le dépôt d'un projet ou vice versa.
Notez qu'il est souvent confondu dans la documentation officielle et il est regrettable qu'un terme qui a déjà été largement utilisé a été choisi comme le nom de la nouvelle entité, mais c'est le cas et nous devons vivre avec cela.
La conséquence est que le repos et les projets sont généralement confus et chaque fois que vous lisez sur GitHub projets que vous avez à me demander si c'est vraiment sur les projets ou sur les pensions de titres. S'ils avaient choisi un autre nom ou une abréviation, comme le "projet" puis nous avons pu savoir que ce qui est discuté est le nouveau type d'entité, un objet précis avec le béton des propriétés, ou d'une manière générale repo-comme projectish genre de truc.
Le terme qui est généralement sans ambiguïté est "conseil du projet".
Que pouvons-nous apprendre à partir de l'API
Le premier point de terminaison dans la documentation des Projets de l'API:
est décrit comme: Liste de dépôt des projets. Cela signifie qu'un référentiel peut avoir de nombreux projets. Ces deux-là ne peut pas dire la même chose. Il comprend Réponse si les projets sont désactivés:
ce qui signifie que certaines repos peut avoir des projets désactivé. Encore une fois, ceux qui ne peuvent pas être la même chose quand un repo peut avoir des projets désactivé.
Il y a quelques points de terminaison:
POST /repos/:owner/:repo/projects
POST /orgs/:org/projects
mais il est pas:
Créer un utilisateur projet -POST /users/:user/projects
Qui nous conduit à une autre différence:
1. Les référentiels peuvent appartenir à des utilisateurs ou des organisations
2. Les projets peuvent appartenir à des référentiels ou des organisations
ou, plus important encore:
1. Les projets peuvent appartenir à des référentiels, mais pas dans l'autre sens
2. Les projets peuvent appartenir à des organisations, mais pas pour les utilisateurs
3. Les référentiels peuvent appartenir à des organisations et à des utilisateurs
Voir aussi:
Je sais que c'est confus. J'ai essayé de l'expliquer aussi précisément que je le pouvais.
GitHub Référentiels sont utilisés pour stocker tous les fichiers, dossiers et autres ressources qui vous intéressent.
Projet Git : Il est aussi l'un de la Ressource dans le Dépôt Git et utilisation principale est de gérer les projets avec un visuel du conseil. Si vous créez un projet dans le Dépôt Git de créer un visuel de carte comme un des tableaux Kanban pour gérer le projet.
De cette façon, vous pouvez avoir plusieurs projets dans un référentiel.
En général, sur GitHub, 1 référentiel = 1 projet. Par exemple: https://github.com/spring-projects/spring-boot . Mais ce n'est pas une règle absolue.
1 référentiel de = nombreux projets. Par exemple: https://github.com/donhuvy/java_examples
1 = beaucoup de dépôts. Par exemple: https://github.com/zendframework/zendframework (1 projet nommé Zend Framework 3 a 61 + 1 = 62 dépôts, ne croyez pas? laissez-comte Zend Frameworks' modules + dépôt principal)
Je suis totalement d'accord avec @Brandon Ibbotson's commentaire:
À l'égard de l'git vocabulaire,
un Projet est le dossier dans lequel le contenu(fichiers) vie.
Alors que Référentiel (repo) est le dossier à l'intérieur de laquelle git garde la trace de tous les changements été réalisés dans le projet dossier.
Mais dans un sens général, ces deux peuvent être considérés comme le même.
Projet = Référentiel
C'est ma compréhension personnelle sur le sujet.
Pour un projet, nous pouvons faire le contrôle de version par différents référentiels. Et pour un dépôt, il permet de gérer l'ensemble du projet ou une partie de projets.
Concernant votre projet (plusieurs prototypes d'applications qui sont indépendants de chacun d'eux). Vous pouvez gérer le projet par un référentiel ou par plusieurs référentiels, la différence:
Gérer par un référentiel. Si l'une des applications est modifié, l'ensemble du projet (toutes les applications) seront engagés pour une nouvelle version.
Gérer plusieurs dépôts. Si une application est changé, il affectera seulement le référentiel qui gère l'application. Version pour les autres dépôts n'a pas été modifié.