Подтвердить что ты не робот

Проект против репозитория в GitHub

В GitHub, какова концептуальная разница между проектом (который может быть создан внутри репозитория) и репозиторием?

Я видел несколько похожих вопросов (здесь, здесь и здесь), но ни один из них не объясняет, что такое проект GitHub, что такое репозиторий GitHub и когда использовать каждый из них.

Я был бы признателен, если бы кто-нибудь мог объяснить каждый термин и дать пример того, когда использовать/создавать каждый. Например, если у меня есть несколько прототипов приложений, все независимо друг от друга, что я создаю, чтобы организовать организованным способом исходный код для всех из них?

4b9b3361

Ответ 1

Недавно GitHub представила новую функцию Projects. Это обеспечивает визуальную плату, которая характерна для многих инструментов управления проектами:

Project

A Repository, как описано на GitHub:

Репозиторий является самым основным элементом GitHub. Они проще всего представить себе как папку проекта. Хранилище содержит все файлы проекта (включая документацию) и сохраняет файлы каждого файла лист регистраций изменений. Репозитории могут иметь несколько сотрудников и могут быть государственным или частным.

A Project, как описано в GitHub:

Планы проектов на GitHub помогают организовать и расставить приоритеты вашей работы. Вы можете создавать доски проектов для выполнения особых функций, всеобъемлющих дорожных карт или даже выпускать контрольные списки. С советами по проектам вы можете создавать индивидуальные рабочие процессы, которые отвечают вашим потребностям.

Часть путаницы заключается в том, что новая функция "Проекты" конфликтует с перегруженным использованием термина проекта в приведенной выше документации.

Ответ 2

Факт 1: Проекты и репозитории всегда были синонимами на GitHub.
Факт 2: Это уже не так.

Существует много путаницы в репозиториях и проектах. В прошлом оба термина использовались в значительной степени взаимозаменяемо пользователями и самой собственной документацией GitHub. Это отражено в некоторых ответах и ​​комментариях, которые объясняют тонкие различия между этими терминами и когда они были предпочтительнее других. Разница всегда была тонкой, например. например, отслеживание проблем, являющееся частью проекта, но не репо, которое может быть, хотя и строго git и т.д.

Не больше.

В настоящее время репозитории и проекты относятся к различным типам объектов, которые имеют отдельные API:

С тех пор уже неверно вызывать репо проект или наоборот. Обратите внимание, что это часто путают в официальной документации, и, к сожалению, термин, который уже был широко использован, был выбран как имя нового объекта, но это так, и мы должны жить с этим.

Следствием этого является то, что репозитории и проекты обычно путаются, и каждый раз, когда вы читаете о проектах GitHub, вам нужно задаться вопросом, действительно ли это касается проектов или об РЕПО. Если бы они выбрали какое-то другое имя или аббревиатуру типа "proj", тогда мы могли бы знать, что обсуждается новый тип сущности, точный объект с конкретными свойствами или вообще говорящий репо-подобный проектный вид вещи.

Термин, который обычно недвусмыслен, "доска проекта.

Что мы можем узнать из API

Первая конечная точка в документации API проектов:

описывается как: Список проектов репозитория. Это означает, что в репозитории может быть много проектов. Таким образом, эти два не могут означать одно и то же. Он включает Ответ, если проекты отключены:

{
  "message": "Projects are disabled for this repo",
  "documentation_url": "https://developer.github.com/v3"
}

что означает, что некоторые репозитории могут отключать проекты. Опять же, это не может быть одним и тем же, когда у репо могут быть отключены проекты.

Есть и другие интересные конечные точки:

  • Создать проект репозитория - POST /repos/:owner/:repo/projects
  • Создать проект организации - POST /orgs/:org/projects

но есть нет:

  • Создать проект пользователя - POST /users/:user/projects

Это приводит нас к другой разнице:

1. Хранилища могут принадлежать пользователям или организациям.
2. Проекты могут принадлежать репозиториям или организациям

или, что более важно:

1. Проекты могут принадлежать репозиториям, но не наоборот
2. Проекты могут принадлежать организациям, но не пользователям
3. Хранилища могут принадлежать организациям и пользователям

См. также:

Ответ 3

Репозитории GitHub используются для хранения всех файлов, папок и других ресурсов, которые вам интересны.

Git Проект: он также является одним из ресурсов в репозитории Git, и его основное использование - управлять проектами с помощью визуальной платы. Если вы создаете проект в репозитории Git, он создает визуальную плату, такую ​​как доска Kanban для управления проектом.

Таким образом, вы можете иметь несколько проектов в репозитории.

Ответ 4

В общем, на GitHub, 1 репозиторий = 1 проект. Например: https://github.com/spring-projects/spring-boot. Но это не сложное правило.

1 репозиторий = много проектов. Например: https://github.com/donhuvy/java_examples

1 projects = много репозиториев. Например: https://github.com/zendframework/zendframework (1 проект с именем Zend Framework 3 имеет 61 + 1 = 62 репозитория, не верьте? Давайте считать Zend Frameworks 'модули + основной репозиторий)

Я полностью согласен с @Brandon Ibbotson comment:

Репозиторий GitHub - это просто "каталог", в котором папки и файлы могут существуют.

Ответ 5

Это мое личное понимание темы.

Для проекта мы можем управлять версиями разными репозиториями. А для репозитория он может управлять целым проектом или частью проектов.

Относительно вашего проекта (несколько прототипов, которые не зависят от каждого из них). Вы можете управлять проектом одним репозиторием или несколькими репозиториями, разница:

  • Управление одним хранилищем. Если одно из приложений будет изменено, весь проект (все приложения) будет привязан к новой версии.

  • Управление несколькими репозиториями. Если одно приложение изменено, оно будет влиять только на репозиторий, который управляет приложением. Версия для других репозиториев не была изменена.