⌨️ GitHub으로 하는 협업

So'sCode·2023년 9월 1일

GDG X Whatever

목록 보기
2/11
post-thumbnail

🍴포크하기 + 나의 컴퓨터에 가져오기


1. 프로젝트의 메인이 되는 깃허브에 들어간다.
2. 오른쪽 상단 위에 있는 fork를 클릭하면 하단과 같이 Create a new fork 라고 뜨며 나의 깃허브에 해당 레포를 동일하게 가져갈 수 있는 형태로 폼이 뜬다.


3. 내 깃으로 포크가 완료된다면 나의 깃허브의 포크된 레포지토리ㅇ에 들어가 'Code'를 클릭하여 ssh 를 복사한다.

4. 개인 터미널을 열어 원하는 위치에 git clone <복사한 ssh> 를 진행해준다.

🫂 본격적인 협업 시작

각자 하는 방식이 다를 수도 있고, 협업하는 방식이 다르니 그점은 참고하고 봐주셨음 좋겠습니다:)

  • vsc 혹은 각자 작업하는 툴을 열어줍니다.
  1. 위에서 클론 받은 파일을 열어 프로젝트의 메인이 되는 깃허브의 주소 또한 똑같이 ssh를 복사해준다.
    • ssh키는 따로 발급받아함.
  2. git remote add upstream 복사한 주소
    • 이는 내가 프로젝트의 메인이 되는 깃을 리모트로 추가하는 과정
    • 보통 메인이 되는 레포이름을 upstream으로 한다.( 다른 이름으로 해도 상관 없음)
  3. git branch so
    • 각자의 이름 혹은 다른 이름도 상관없다. 이름으로 브랜치를 생성한다.
    • git checkout so : 만든 브랜치로 전환
  4. 새로 만든 브랜치에서 작업을 하고 나의 리모트origin에 커밋을 진행한다.
  5. 커밋을 한 후, 개인 레포지토리로 들어가면 pull & request라는 버튼이 초록색으로 뜬다.
  6. 해당 버튼을 누르면 프로젝트의 메인이 되는 깃 레포지토리에도 똑같이 초록색 버튼이 뜬다.
    • 프로젝트 총 책임자 및 팀원들이 PR된 코드를 확인한 후, 괜찮다 싶으면 머지를 해줍니다.

👥 팀원 ver

  1. 앞서 upstream에 머지가 된 커밋을 가지고 와야한다.
    • 이유: 협업을 진행하는데 다른 팀원이 작업한 코드를 가져오지 않고 본인의 작업을 한꺼번에 pr을 보낸다면 충돌이 날 가능성이 매우 높기 때문.
  2. git pull upstream main을 통해서 바로 합칠 수 있지만 이런 방법도 있지만, 다른 방법을 소개하려고 합니다.
    • 방법1.
      • git fetch upstream : 업스트림으로 부터 fetch
      • git checkout main : 메인에 머지하기 위하여 메인 브랜치로 전환하는 과정
      • git merge upstream/main : 업스트림에 있는 내용을 머지시켜준다.
    • 방법2
      • git fetch upstream main : 업스트림으로 부터 fetch
      • git checkout main : 메인에 머지하기 위하여 메인 브랜치로 전환
      • git rebase upstream/main : 여기서 부터 방법1과 방법2기 다른 이유인데 fetch해온 것과 나의 것을 합치기 위하여 _머지 혹은 rebase 를 사용한다.
  3. 이렇게 받아온 후 git push origin 나의브랜치 를 진행해주면 협업하는 사람이 커밋한 코드를 내가 받아와서 볼 수 있는 것입니다.

🏡 정리

다시한번 정리를 해보자면
1. 나의 레포에 포크
2. 리모트에 프로젝트의 메인이 되는 레포 추가
3. 나의 이름 혹은 기능이 되는 이름으로 브랜치 생성
(추후에 제거한다고도 함 : but 캐바캐)
4. 내가 작업한 후, 커밋을 진행하고, PR을 보냄
5. PR보낸 것을 프로젝트 담당자 및 팀원이 보고 올바른 코드이며 오류가 나지 않는 등등 조건을 만족했을 때 머지 진행
6. (팀원ver) 다른 팀원이 업로드 하여 머지가 되었으면 fetch & rebase를 통해 나의 것으로 받아온 후 push를 진행해주어 upstream과 나의 레포와 커밋을 동일하게 바꿔준다.
7. (팀원ver) 이하 위에 방식과 동일하게 수정해주면 된다.

profile
이왕하는거미루지말고하자.

0개의 댓글