GitHub のプロジェクトとリポジトリの違い 質問する

GitHub のプロジェクトとリポジトリの違い 質問する

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

似たような質問をいくつか見てきました(ここここそしてここ) は SO にありますが、GitHub プロジェクトとは何か、GitHub リポジトリとは何か、それぞれをいつ使用するのかを説明しているものはありません。

各用語を説明して、それぞれをいつ使用/作成するかの例を示していただけるとありがたいです。たとえば、互いに独立したプロトタイプ アプリケーションが複数ある場合、それらすべてのソース コードを体系的に管理するには何を作成すればよいでしょうか。

ベストアンサー1

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

事実 2: これはもう当てはまりません。

リポジトリとプロジェクトについては、多くの混乱があります。過去には、両方の用語は、ユーザーと GitHub のドキュメントでほぼ互換的に使用されていました。これは、これらの用語の微妙な違いと、どちらが好まれるかを説明する、ここでの回答とコメントの一部に反映されています。違いは常に微妙なものでした。たとえば、問題追跡ツールはプロジェクトの一部ですが、厳密には git のものと考えられるリポジトリの一部ではありません。

もうない。

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

それ以来、リポジトリをプロジェクトと呼ぶことはもはや正しくありませんし、その逆も同様です。公式ドキュメントでは混同されることが多く、すでに広く使用されている用語が新しいエンティティの名前として選択されたのは残念ですが、これが事実であり、私たちはそれを受け入れるしかありません。

その結果、リポジトリとプロジェクトは混同されることが多く、GitHub プロジェクトについて読むたびに、それが本当にプロジェクトに関することなのか、リポジトリに関することなのか疑問に思うことになります。別の名前や「proj」などの略語が選択されていれば、議論されているのが新しいタイプのエンティティ、具体的なプロパティを持つ正確なオブジェクト、または一般的に言えばリポジトリのようなプロジェクトのようなものだということがわかるでしょう。

通常、明確な用語は「プロジェクト ボード」です。

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

しかし、次のものはありませ:

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

これにより、別の違いが生まれます。

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

あるいは、もっと重要なのは:

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

参照:

混乱するかもしれないことは分かっています。できるだけ正確に説明しようと努力しました。

おすすめ記事