흐름 요약

 

  1. 포크(fork): 다른 사람의 리포지토리를 내 GitHub 계정으로 복사.
  2. 클론(clone): 내 로컬 컴퓨터로 복사된 리포지토리 가져오기.
  3. 브랜치(branch): 독립적으로 작업할 수 있도록 브랜치를 생성하여 개발.
  4. 커밋(commit): 작업한 내용을 기록하고 버전 관리.
  5. 푸시(push): 로컬 작업을 GitHub 원격 리포지토리로 업로드.
  6. 풀 리퀘스트(pull request): 변경 사항을 리포지토리 소유자에게 리뷰 요청.
  7. 머지(merge): 변경 사항을 원본 리포지토리의 main 브랜치에 통합.

 

전체 흐름 요약

  1. 리포지토리 생성: A가 프로젝트 리포지토리를 생성하고, B를 협업자로 초대.
  2. 브랜치 생성: B가 자신의 로컬 브랜치를 만들고 작업.
  3. 커밋 및 푸시: B가 작업 후 커밋하고 푸시.
  4. PR 생성: B가 PR을 열어 A에게 코드 리뷰를 요청.
  5. 리뷰 및 병합: A가 PR을 확인하고, 문제 없으면 병합.
  6. 업데이트: B와 A 모두 로컬 저장소를 최신 상태로 업데이트.

두 명의 개발자 A와 B가 있어요 👻
GitHub에서 협업하는 프로젝트가 있다고 해요
그 협업 과정에 대해서 알아볼까요?

 

 

 

1️⃣ GitHub Repository 생성

 

  • 먼저, A가 GitHub에서 새 프로젝트를 시작한다고 가정할게요
  • GitHub에서 새로운 repository를 생성하고, 프로젝트에 필요한 기본적인 파일(예: README.md, .gitignore 등)을 추가합니다.

 

 

① GitHub에 들어가서「Repositories」 를 클릭해주세요!

 

 

② 그러면 초록색으로 New가 뜰 거예요. 눌러주세요!

 

 

「Repository name」에서 이름을 정해주세요

④ Public로 하셔도 되고 Private로 하셔도 됩니다. 저는 Public로 할게요

 

 

「Add a README file」 을 눌러서 함께 생성해줄게요

「Add .gitignore」에서 현재 쓰고 있는 언어를 찾아서 설정해주세요. 저는 Python을 쓰기 때문에 Python으로 했어요

 「Create repository」를 눌러주시면 생성 완료!

 

2️⃣ Collaborator 초대

 

① 이제 B를 프로젝트에 참여하도록 초대할 거예요

「Settings」에 들어가주세요

 

「Collaborators」 섹션에서 B의 GitHub 아이디를 추가해주세요

④ 그렇게 되면 B의 📬이메일로 메시지를 받게 되고, 이를 수락하면 같은 repository에서 협업할 수 있게 돼요

 

3️⃣ 로컬 저장소 클론 (Clone)

① 이제 B는 GitHub에서 A가 만든 repository를 로컬 컴퓨터로 클론(clone)하여 작업을 시작해야 해요

② Repository에서 「<> Code」 버튼을 누르시면 해당 주소가 보일 거예요. 복사해주세요

 

# bash
git clone https://github.com/username/repository-name.git

 

③ 터미널을 켜서 로컬 컴퓨터에 클론(clone) 해줄게요

 

# desktop으로 가기
~ % cd desktop
Cloning into 'Project'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (4/4), done.

 

 

 

④ 이렇게 되면 바탕화면에 폴더가 생성돼 있을 거예요

 

4️⃣ 새로운 브랜치 생성 및 작업

VSCode

① 협업 시, 보통 메인 브랜치(main/master)에서 바로 작업하지 않고, 각자 작업할 브랜치를 만들어서 써요

② 이제, B는 새로운 브랜치를 생성하고 그 브랜치에서 작업을 시작해요

# 브랜치 생성
## git swith -c branch_name
git swith -c A_branch

 

 

③ B는 이 브랜치에서 코드를 수정하거나 새로운 기능을 개발할 수 있게 돼요

 

5️⃣ 로컬 변경 사항 커밋

      ▲ 왼쪽 하단을 보면 지금 main에 있는지, branch에 있는지 확인 가능해요

git add file_name
git commit -m "A comment"

 

① 작업이 끝난 후, B는 변경된 파일들을 Git에 추가하고 commit 해요

 

6️⃣ 원격 저장소에 푸시 (Push)

 

① 변경 사항을 로컬에서 커밋한 후, B는 해당 브랜치를 GitHub의 원격 저장소에 푸시(push) 해요

git push origin branch name
$ git push origin A_branch
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 8 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 538 bytes | 538.00 KiB/s, done.
Total 5 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), done.
remote: 
remote: Create a pull request for 'A_branch' on GitHub by visiting:
remote:      https://github.com/minkyungbae/Project/pull/new/A_branch
remote: 
To https://github.com/minkyungbae/Project.git
 * [new branch]      A_branch -> A_branch

 

이렇게 결과창이 우르르 나온다면 된 거예요

 

7️⃣ 풀 리퀘스트 (Pull Request, PR) 생성

B가 작업한 브랜치를 GitHub에서 A에게 머지(Merge)하라고 요청하기 위해 **Pull Request(PR)**를 생성해요

 

 

「Compare & pull request」버튼을 눌러도 되고, 상단에 「Pull requests」 버튼을 눌러서 PR을 생성할게요

 

 PR을 작성할 때, 어떤 변경을 했는지 간단한 설명을 추가하는 것이 좋아요

 

8️⃣ A의 리뷰 및 피드백

① A는 PR을 열어 B가 작성한 코드를 확인해요

② 코드에 문제가 없으면 PR을 승인하고, A_branch를 main 브랜치에 병합할게요

(코드에 문제가 있으면 피드백을 남기고, B는 다시 해당 부분을 수정한 후 PR을 업데이트하면 돼요)

 

 

 

9️⃣ 브랜치 병합 (Merge)

① A가 PR을 승인하고, 병합(Merge)을 클릭하면, B의 작업이 main 브랜치에 반영돼요

                                ▲ 클릭!

 

                                 ▲ 클릭하면 merge 돼요

 

🔟 협업 종료 후 로컬 업데이트

① 이제 A, B 모두 최신 자료를 GitHub에서 로컬로 받아와야 해요

A, B 모두 최신 파일로 관리하는 것이 중요해요

git switch main		# main으로 가기
git pull origin main	# GitHub main에 있는 최신 자료 받아오기

 

‼ 충돌은 얼마든지 발생할 수 있는 것이니, 당황하지 않고 VSCode처럼 로컬에서 해결 후 push 해주시면 됩니다 !!


 

'함수 정리 > Git' 카테고리의 다른 글

Git 명령어  (0) 2024.12.14

+ Recent posts