일단 씻고 나가자

[Git/Github] 협업 프로젝트 시작 - 2 - organization repository 연동 및 설정 (팀원) 본문

Backend/Git

[Git/Github] 협업 프로젝트 시작 - 2 - organization repository 연동 및 설정 (팀원)

일단 씻고 나가자 2023. 12. 28. 04:33

협업 프로젝트 시작 시 github의 organization(조직) repository 생성과 초기화 설정,

그리고 해당 repository에 팀원들이 접근하여 코드를 가져오고 개발이 진행되는 시나리오에 대해 정리한다.

 

기본적으로 git flow (main - develop - feature) 규칙을 따른 예시로 설명하며,

이슈 관련 및 branch 명명 혹은 규칙 등은 팀의 컨벤션(룰)에 따라 달라질 수 있음을 염두한다.

 

크게 다음과 같은 파트로 설명한다. (사용 툴 - Git, Github, IntelliJ)

 

  1.  [ organization, repository의 생성, 업로드, 설정 (팀장) ]
  2.  [ organization repository 연동 및 설정 (팀원) ]
  3.  [ Git 활용 개발 방식 및 시나리오 (fetch, pull, push) ]

 

 

 

[ organization repository 연동 (팀원) ]

1. organization repository -> 개인 repository (fork)

 

팀원은 팀장이 작성한 organization repository 의 뼈대 코드를 자신의 개인 repository 로 복사하여 개발을 진행하게 된다.

이때 코드를 개인 repository 로 복사하는 것을 Fork 기능이라 한다.

 

소규모 프로젝트의 경우에는 굳이 fork를 이용하지 않고 다음 2번(clone)으로 이동하여,

IntelliJ -> organization repository 로 직접적으로 반영하는 방법(sync fork 및 upstream 과정 X)을 택하여도 무방하다.

(방법을 어떤 것을 택할 것인지 또한 팀의 컨벤션에 따른다)

 

단, 이번 포스트의 경우엔 fork를 이용하여 IntelliJ <-> 개인 repository <-> organization repository 의 플로우로 프로젝트를 진행하게끔 설명한다.

 

사진을 통해 설명하며, 클릭해야 하는 부분은 파란색 상자로 표기한다.

 

먼저 팀의 organization repository 에 접속한다.

 

 

[Code] -> [Fork]

 

 

 

[Repository name] 에 자신의 repository 로 가져올 때 설정할 이름을 설정한다. 

[Copy the main branch only] 는 체크를 해제한다. 이는 팀장이 미리 생성한 뼈대 브랜치(ex. develop) 또한 가져와 개발을 진행해야 할 때 필수적이다.

[Create fork] 로 설정을 마친다.

 

 

이후 자신의 개인 repository 에 접속하면 복사된 repository 를 볼 수 있다.

 

 

 

 

2. 개인 repository -> IntelliJ (clone)

 

이제 IntelliJ 으로 코드를 불러와 개발 환경을 만들어야 한다.

 

IntelliJ 의 다음 두 방법 중 하나를 택하여 Github 에 등록된 프로젝트를 가져올 수 있다.

 

[ 방법 1 ] IntelliJ 실행 후 [Get from VCS]

 

 

 

[ 방법 2 ] IntelliJ 프로젝트 화면에서 [Git] -> [Clone...]

 

 

 

두 방법 모두 다음과 같은 화면으로 이동한다.

 

 

 

해당 목록들엔 등록된 프로젝트들이 리스트업 되어 있는데,

이들 중 개인 repository 로 이동한 프로젝트를 선택 후 [clone] 한다.

(fork를 활용하지 않았을 경우 organization repository를 선택하며, organization repository 는 / 로 구분된다)

 

 

성공했다면 IntelliJ 에 해당 프로젝트의 내용이 성공적으로 담긴다.

 

 

 

3. IntelliJ -> organization repository (upstream)

 

현재까지의 작업으로 인해, 각 파트들은 다음과 같이 순서를 갖게 되었다.

 

organization repository -> 개인 repository -> IntelliJ

 

이때 IntelliJ 에서 push 를 수행하게 될 경우,

바로 윗 단인 개인 repository 에만 내용이 반영될 것이므로,

우리가 작업한 IntelliJ 의 코드를 organization repository 에 반영하기 위해 upstream 설정을 해주어야 한다.

 

개인 repository 코드를 clone 한 IntelliJ 프로젝트로 돌아와, [Terminal] 에 다음과 같이 작성한다.

 

 

` git remote add upstream [organization repository 주소] ` 와 같은 형식으로 작성하면 되며, (대괄호는 제거해야 한다)

` git remote -v ` 명령어를 통해 설정을 확인할 수 있다.

 

 

 

이때 organization repository 의 주소는 다음 사진과 같이 organization repository 의 [Code] 부에서 복사할 수 있다.

 

 

이것으로 IntelliJ, 개인 repository, organization repository가 모두 연동 되었다.

이를 정리하자면 다음과 같다.

 

  • Fork   organization repository -> 개인 repository
  • Clone   개인 repository -> IntelliJ
  • upstream   IntelliJ -> organization repository

 

 

 


 

당부의 글

이것으로 연동만의 과정은 마쳤으나,

연동보다 더 중요한 것이 실제 pull, push를 에러가 나지 않게 활용하는 방법입니다.

 

경험상 연습해보지 않고 다짜고짜 git을 적용했다가

사소한 실수로 프로젝트 전체를 망가트릴 수 있습니다.

 

다음 글에 제가 최대한 쉽게 설명해놨으니,

꼭 한 번 따로 연습해보시고 실제 프로젝트에 들어가시길 바랍니다.

 


 

 

 

 

 

 

 

이어지는 글에선 연동 이후의

실제 진행되는 개발 시나리오와 fetch, pull, push 방식 및 활용과 예시에 대해 알아보겠다.

 

 

↓ 다음 글 바로 가기

https://hyungjun-950912.tistory.com/201

 

[Git/Github] 협업 프로젝트 시작 - 3 - Git 활용 개발 방식 및 시나리오 (fetch, pull, push)

협업 프로젝트 시작 시 github의 organization(조직) repository 생성과 초기화 설정,그리고 해당 repository에 팀원들이 접근하여 코드를 가져오고 개발이 진행되는 시나리오에 대해 정리한다.기본적으로 g

hyungjun-950912.tistory.com