GitHub의 프로젝트 및 리포지토리 나는 비슷한 몇 가지 질문 (

GitHub에서 (리포지토리 내에서 생성 할 수있는) 프로젝트와 리포지토리의 개념적 차이점은 무엇입니까?

나는 비슷한 몇 가지 질문 ( here , herehere )을 보았지만 GitHub 프로젝트가 무엇인지, GitHub 리포지토리가 무엇인지, 각각의 사용시기를 설명하는 것은 없습니다.

누군가가 각 용어를 설명하고 각 용어를 사용 / 만드는시기에 대한 예를 제공 할 수 있다면 감사하겠습니다. 예를 들어, 서로 독립적 인 여러 프로토 타입 응용 프로그램이있는 경우 모든 응용 프로그램의 소스 코드를 체계적으로 관리하기 위해 무엇을 작성해야합니까?



답변

GitHub는 최근 Projects 라는 새로운 기능을 도입했습니다 . 이는 많은 프로젝트 관리 도구에 일반적인 비주얼 보드를 제공합니다.

저장소 GitHub의에 설명 된대로 :

저장소는 GitHub의 가장 기본적인 요소입니다. 프로젝트 폴더로 가장 쉽게 상상할 수 있습니다. 저장소에는 모든 프로젝트 파일 (문서 포함)이 포함되며 각 파일의 개정 내역이 저장됩니다. 리포지토리에는 여러 공동 작업자가있을 수 있으며 공개 또는 비공개 일 수 있습니다.

프로젝트는 GitHub의에 설명 된대로 :

GitHub의 프로젝트 보드는 작업을 구성하고 우선 순위를 정하는 데 도움이됩니다. 특정 기능 작업, 포괄적 인 로드맵 또는 릴리스 체크리스트를위한 프로젝트 보드를 만들 수 있습니다. 프로젝트 보드를 사용하면 필요에 맞는 맞춤형 워크 플로우를 생성 할 수 있습니다.

혼란의 일부는 새로운 기능인 Projects가 위의 문서에서 오버로드 된 용어 프로젝트 사용과 충돌한다는 것 입니다.


답변

사실 1 : 프로젝트와 리포지토리는 항상 GitHub의 동의어였습니다.

사실 2 : 더 이상 그렇지 않습니다.

리포지토리와 프로젝트에 대해 많은 혼란이 있습니다. 과거에는 두 용어가 사용자와 GitHub의 자체 문서에서 거의 상호 교환 적으로 사용되었습니다. 여기에는이 용어들 사이의 미묘한 차이점과 다른 용어보다 선호되는시기를 설명하는 여기에있는 일부 답변과 의견이 반영되어 있습니다. 차이는 항상 미묘했습니다. 예를 들어 이슈 트래커는 프로젝트의 일부이지만 엄격하게 자식으로 간주 될 수있는 리포지토리의 일부는 아닙니다.

더 이상은 아닙니다.

현재 repos와 프로젝트 는 별도의 API 를 가진 다른 종류의 엔티티 를 참조합니다 .

그 이후로 더 이상 repo를 프로젝트로 호출하거나 그 반대로 호출하는 것은 올바르지 않습니다. 그것은 공식 문서에서 종종 혼동되며 이미 널리 사용되는 용어가 새로운 실체의 이름으로 선택되었다는 것은 불행한 일입니다.

결과적으로 repos와 프로젝트가 혼란스럽고 GitHub 프로젝트에 대해 읽을 때마다 실제로 프로젝트에 관한 것인지 repos에 관한 것인지 궁금해해야합니다. 그들이 “proj”와 같은 다른 이름이나 약어를 선택했다면, 논의 된 것은 새로운 유형의 실체, 구체적인 속성을 가진 정확한 대상, 또는 일반적인 말하기 레포와 같은 투사 같은 것임을 알 수 있습니다.

일반적으로 모호하지 않은 용어는 “프로젝트 보드” 입니다.

API에서 무엇을 배울 수 있습니까

Projects API 문서의 첫 번째 엔드 포인트 :

목록 저장소 프로젝트 로 설명됩니다 . 이는 저장소에 많은 프로젝트가있을 수 있음을 의미합니다. 따라서이 둘은 같은 것을 의미 할 수 없습니다. 프로젝트가 비활성화 된 경우 응답 이 포함됩니다 .

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

이는 일부 repos가 프로젝트를 비활성화 할 수 있음을 의미합니다. 리포지토리에서 프로젝트를 비활성화 할 수있는 경우에도 마찬가지입니다.

다른 흥미로운 엔드 포인트가 있습니다.

  • 리포지토리 프로젝트 만들기POST /repos/:owner/:repo/projects
  • 조직 프로젝트 만들기POST /orgs/:org/projects

그러나 없습니다 :

  • 사용자 프로젝트 만들기POST /users/:user/projects

이것은 또 다른 차이점으로 이어집니다.

1. 리포지토리는 사용자 또는 조직에 속할 수 있습니다
에 속할 수 있습니다. 2. 프로젝트는 저장소 또는 조직에 속할 수 있습니다.

또는 더 중요한 것은 :

1. 프로젝트는 리포지토리에 속할 수 있지만 다른 방법으로
는 할 수 없습니다. 2. 프로젝트는 조직에 속할 수 있지만 사용자에게는
속할 수 없습니다. 3. 리포지토리는 조직 및 사용자에 속할 수 있습니다

또한보십시오:

혼란 스럽습니다. 최대한 정확하게 설명하려고 노력했습니다.


답변

GitHub 리포지토리는 관심있는 모든 파일, 폴더 및 기타 리소스를 저장하는 데 사용됩니다.

Git Project : Git Repository의 리소스 중 하나이며 주로 Visual Board로 프로젝트를 관리하는 데 사용됩니다. Git Repository에서 프로젝트를 만들면 프로젝트를 관리하기 위해 Kanban 보드와 같은 비주얼 보드를 만듭니다.

이런 방식으로 저장소에 여러 프로젝트를 가질 수 있습니다.


답변

일반적으로 GitHub에서 1 repository = 1 project 입니다. 예를 들면 다음과 같습니다 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 개의 저장소가 있습니다.

나는 @Brandon Ibbotson의견에 전적으로 동의합니다 .

GitHub 저장소는 폴더와 파일이 존재할 수있는 “디렉토리”입니다.


답변

git 어휘와 관련하여 Project 는 실제 내용 (파일)이있는 폴더입니다. 반면 Repository (repo) 는 git이 프로젝트 폴더 에서 변경된 모든 내용을 기록하는 폴더입니다. 그러나 일반적으로이 두 가지가 동일한 것으로 간주 될 수 있습니다.
프로젝트 = 리포지토리


답변

프로젝트가 많은 저장소를 포함 할 수 있고 서로 독립적이며 프로젝트가 여러 프로젝트를 포함 할 수 있다는 점을 이해한다는 개념상의 차이점. Repo는 코드를 저장하는 장소 일 뿐이며 프로젝트는 특정 기능에 대한 작업 모음입니다.

말이 돼? 큰 리포지토리에는 여러 사람이 동시에 여러 프로젝트를 작업 할 수 있으며 (모노리스에 많은 차이 기능이 추가됨) 큰 프로젝트에는 서로 별개이지만 동일한 프로젝트의 일부인 작은 리포지토리가있을 수 있습니다. 기타-마이크로 서비스? 당신이하고 싶은 일을 개인적으로 취합니다. 레포 (스토리지) 대 프로젝트 (작업)가 주요 차이점이라고 생각합니다. 잘못되면 알려주세요 / 설명하십시오! 감사.


답변

이것이 주제에 대한 나의 개인적인 이해입니다.

프로젝트의 경우 다른 리포지토리별로 버전 제어를 수행 할 수 있습니다. 그리고 저장소의 경우 전체 프로젝트 또는 프로젝트의 일부를 관리 할 수 ​​있습니다.

프로젝트 (각각 독립적 인 여러 프로토 타입 응용 프로그램)와 관련하여. 하나의 저장소 또는 여러 저장소로 프로젝트를 관리 할 수 ​​있습니다. 차이점은 다음과 같습니다.

  1. 하나의 저장소로 관리하십시오. 응용 프로그램 중 하나가 변경되면 전체 프로젝트 (모든 응용 프로그램)가 새 버전으로 커밋됩니다.

  2. 여러 저장소로 관리하십시오. 하나의 응용 프로그램이 변경되면 응용 프로그램을 관리하는 저장소에만 영향을줍니다. 다른 리포지토리의 버전은 변경되지 않았습니다.