web-dev-qa-db-ja.com

GitHubのプロジェクトとリポジトリ

GitHubでは、プロジェクト(リポジトリ内で作成できる)とリポジトリの概念的な違いは何ですか?

私はいくつかの同様の質問を見ました( herehere および here )SOで、それらのどれもGitHubプロジェクトとは何か、はGitHubリポジトリであり、それぞれをいつ使用するかです。

誰かが各用語を説明し、各用語をいつ使用/作成するかの例を提供できれば幸いです。たとえば、複数のプロトタイプアプリケーションがあり、それらがすべて互いに独立している場合、それらすべてのソースコードを組織的に管理するには、何を作成すればよいですか?

75
carlossierra

GitHubは最近、 Projects という新しい機能を導入しました。これにより、多くのプロジェクト管理ツールに典型的な視覚的なボードが提供されます。

Project

A リポジトリ GitHubに記載されているとおり:

リポジトリは、GitHubの最も基本的な要素です。プロジェクトのフォルダーとして想像するのが最も簡単です。リポジトリには、すべてのプロジェクトファイル(ドキュメントを含む)が含まれ、各ファイルの改訂履歴が保存されます。リポジトリには複数の共同編集者を含めることができ、公開または非公開のどちらでもかまいません。

A プロジェクト GitHubに記載されているとおり:

GitHubのプロジェクトボードは、作業の整理と優先順位付けに役立ちます。特定の機能作業、包括的なロードマップ、リリースチェックリスト用のプロジェクトボードを作成できます。プロジェクトボードを使用すると、ニーズに合わせてカスタマイズしたワークフローを柔軟に作成できます。

混乱の一部は、新しい機能であるプロジェクトが、上記のドキュメントの用語projectのオーバーロードされた使用法と競合することです。

50
osowskit

事実1:プロジェクトとリポジトリは常にGitHubの同義語でした。

事実2:これはもはや事実ではありません。

リポジトリとプロジェクトには多くの混乱があります。過去には、両方の用語はユーザーとGitHubの独自のドキュメントでほぼ同じ意味で使用されていました。これは、これらの用語の微妙な違いと、一方が他方よりも優先された時期を説明する回答とコメントの一部に反映されています。違いは常に微妙でした。課題トラッカーがプロジェクトの一部であるが、リポジトリの一部ではなく、厳密にgitの事柄と見なされる可能性があるなど。

もう違います。

現在、リポジトリとプロジェクトは、異なるAPIを持つ異なる種類のエンティティを参照しています):

それ以降、リポジトリをプロジェクトと呼ぶこと、またはその逆を行うことはもはや正しくありません。公式文書ではしばしば混同されることに注意してください。すでに広く使用されている用語が新しいエンティティの名前として選択されているのは残念ですが、これは事実です。

その結果、リポジトリとプロジェクトは通常混乱し、GitHubプロジェクトについて読むたびに、それが本当にプロジェクトに関するものなのか、それともリポジトリに関するものなのか疑問に思う必要があります。他の名前または「proj」のような略語を選択した場合、議論されているのは新しいタイプのエンティティ、具体的なプロパティを持つ正確なオブジェクト、または一般的に言えばレポのような射影的な種類であることがわかります。

通常、明確な用語は "project board"です。

APIから何を学ぶことができますか

Projects APIのドキュメントの最初のエンドポイント:

リポジトリプロジェクトの一覧表示。つまり、リポジトリには多くのプロジェクトを含めることができます。したがって、これら2つは同じことを意味することはできません。プロジェクトが無効になっている場合の応答の応答

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

これは、一部のリポジトリがプロジェクトを無効にできることを意味します。繰り返しますが、レポジトリでプロジェクトを無効にできる場合、同じことはできません。

他にも興味深いエンドポイントがいくつかあります。

  • リポジトリプロジェクトを作成します-POST /repos/:owner/:repo/projects
  • 組織プロジェクトを作成します-POST /orgs/:org/projects

ただし、no

  • ユーザーのプロジェクトを作成します-POST /users/:user/projects

これは別の違いにつながります:

1。リポジトリはユーザーまたは組織に属することができます
2。プロジェクトはリポジトリまたは組織に属することができます

または、より重要なこと:

1。プロジェクトはリポジトリに属する​​ことができますが、その逆はできません
2。プロジェクトは組織に属することができますが、ユーザーに属することはできません
3。リポジトリは組織とユーザーに属することができます

こちらもご覧ください:

わかりにくいです。できる限り正確に説明しようとしました。

74
rsp

GitHubリポジトリは、すべてのファイル、フォルダー、その他の重要なリソースを保存するために使用されます。

Gitプロジェクト:Gitリポジトリのリソースの1つでもあり、主な用途はプロジェクトをビジュアルボードで管理することです。 Gitリポジトリでプロジェクトを作成すると、プロジェクトを管理するためのかんばんボードのようなビジュアルボードが作成されます。

このようにして、リポジトリに複数のプロジェクトを含めることができます。

7
Digamber

一般的に、GitHubでは、1リポジトリ= 1プロジェクト。例: https://github.com/spring-projects/spring-boot 。しかし、それは難しいルールではありません。

1リポジトリ=多くのプロジェクト。例: https://github.com/donhuvy/Java_examples

1プロジェクト=多数のリポジトリ。例: https://github.com/zendframework/zendframework (Zend Framework 3という名前の1つのプロジェクトには61 + 1 = 62のリポジトリがありますが、Zend Frameworksのモジュール+メインリポジトリを数えます)

@ Brandon Ibbotson 's comment :に完全に同意します

GitHubリポジトリは、フォルダーとファイルが存在できる単なる「ディレクトリ」です。

4
Do Nhu Vy

Gitボキャブラリーに関して、Projectは実際のコンテンツ(ファイル)が存在するフォルダーです。一方、Repository(repo)は、gitがprojectフォルダーで行われたすべての変更の記録を保持するフォルダーです。しかし、一般的な意味では、これら2つは同じであると考えることができます。 プロジェクト=リポジトリ

1
Anshu Aditya

これは、このトピックに関する私の個人的な理解です。

プロジェクトの場合、異なるリポジトリでバージョン管理を行うことができます。また、リポジトリの場合、プロジェクト全体またはプロジェクトの一部を管理できます。

プロジェクトについて(それぞれに独立したいくつかのプロトタイプアプリケーション)。 1つのリポジトリまたは複数のリポジトリでプロジェクトを管理できますが、違いは次のとおりです。

  1. 1つのリポジトリで管理します。アプリケーションの1つが変更されると、プロジェクト全体(すべてのアプリケーション)が新しいバージョンにコミットされます。

  2. いくつかのリポジトリで管理します。 1つのアプリケーションが変更された場合、そのアプリケーションを管理するリポジトリのみに影響します。他のリポジトリのバージョンは変更されていません。

0
lake