카테고리 없음

협업을 위한 Github 사용법

장수우 2025. 10. 14. 15:30

가장 중요한 황금률 : 브랜치에서 직접 작업하지 않기

한가지 중요한 규칙이 있다면 main 브랜치(or master)는 언제나 모두가 믿고 사용할 수 있는, 안정적인 '최종버전'이어야 합니다.

 

1. 프로젝트 복제하기

팀의 원격 저장소(Github)에 있는 프로젝트를 내 컴퓨터에 그대로 복제해오는 과정입니다.

git clone [GitHub 저장소 주소]

2. 내 작업 공간 만들기

main 브랜치를 건들지 않기 위해, 새로운 기능을 만들거나 버그를 수정할 나먼의 branch를 만듭니다.

# 'feature/login' 이라는 이름의 새 브랜치를 만들고, 그 브랜치로 이동합니다.
git checkout -b feature/login

브랜치 이름은 보통 feature/기능이름 또는 bugfix/버그이름처럼 짓습니다.

 

 3. 최신 내용 동기화 하기 (git pull)

내가 작업하는 동안 다른 팀원이 main 브랜치에 새로운 내용을 업데이트 했을 수 있기 떄문에

최신 내용을 먼저 컴퓨터로 가져와야 충돌을 막을 수 있습니다.

# 원격(origin)의 main 브랜치에 있는 최신 내용을 가져옵니다.
git pull origin main

 

4. 내 작업물 저장하기 (git add & commit)

내 브랜치(feature/login)에서 열심히 코드를 작성하고 수정합니다. 마무리 되면 변경된 내용을 내 개인 저장 공간(로컬 저장소)에 기록합니다.

# 1. 변경된 모든 파일을 저장 목록에 추가
git add .

# 2. "로그인 기능 구현"이라는 메시지와 함께 저장
git commit -m "feat: 로그인 기능 구현"

 

5. 내 작업물 공유하기 (git push)

로컬에 저장된 내 브랜치를 다른 팀원들도 볼 수 있게 원격 저장소(GitHub)에 업로드 합니다.

# 원격(origin)에 내 브랜치(feature/login)를 올립니다.
git push origin feature/login

 

6. 코드 리뷰 요청하기 (Pull Request)

내 작업이 완료 되었으니, 내가 만든 브런치를 main 브런치에 합쳐달라고 공식적으로 요청하는 과정

이 과정은 터미널이 아닌 Github 웹사이트에서 이뤄집니다.

과정:

  1. GitHub 저장소에 접속하면, 방금 push한 브랜치에 대해 "Compare & pull request" 버튼이 보입니다.
  2. 버튼을 클릭하여 어떤 작업을 했는지 상세히 설명하고 Pull Request(PR)를 생성합니다.
  3. 다른 팀원들이 코드를 보고 의견을 남기거나(코드 리뷰), 승인(Approve)을 해줍니다.
  4. 모두가 동의하면, 'Merge pull request' 버튼을 눌러 내가 만든 feature/login 브랜치의 내용이 드디어 main 브랜치에 안전하게 합쳐집니다.

문제 상황: 충돌(Conflict) 해결하기

  • 언제 발생하나요?
    • 내가 A라는 파일의 3번 라인을 수정했는데, 다른 팀원도 똑같이 A 파일의 3번 라인을 수정해서 먼저 main에 합쳐버렸을 때 발생합니다. Git은 누구의 수정이 맞는지 스스로 판단할 수 없어 우리에게 알려줍니다.
  • 어떻게 해결하나요?
    1. 충돌이 발생한 파일을 열면, <<<<< HEAD, =====, >>>>> 같은 이상한 기호들이 보입니다.
    2. <<<<< 와 ===== 사이는 내 코드, ===== 와 >>>>> 사이는 팀원의 코드입니다.
    3. 팀원과 상의하여 어떤 코드를 남길지 결정하고, 나머지 코드와 특수 기호들을 모두 직접 손으로 지웁니다.
    4. 수정이 완료되면, 다시 git add와 git commit으로 충돌을 해결했다는 사실을 저장하면 끝입니다.
반응형