CS/Git

[Git] Github으로 협업하기

young_3060 2024. 1. 7. 00:00
728x90

이번에 github으로 오랜만에 협업을 진행하면서,

기억 저편에 있던 깃헙 사용방법에 대해서 정리하면서 진행해야할 것 같다는 생각이 들었다.

나란 사람.. 벌써 다 까먹다니..😀

이 기회에 제대로 정리 잘 해서 다신 안 까먹어야겠다!

 

1. Fork

  • 진행할 프로젝트의 Repository를 나의 Repository로 Fork한다.

fork 진행 후 내 계정에 저장소가 생긴 모습

 

 

2. Clone & Local Remote

  • fork로 생긴 내 계정 Repository주소를 가지고 로컬 저장소에서 clone한다. 

 

3. Branch 생성

  • 로컬에서 코드를 추가하는 작업은 branch 만들어서 진행한다.
💡 Branch 관리하기
  • Branch 생성하기 : git branch [브랜치명]
  • Branch 생성하고 체크아웃하기 : git checkout -b [브랜치명]
  • Branch 목록 보기 : git branch
  • Branch 삭제하기 : git branch -d [브랜치명]
  • Branch 강제 삭제하기 : git branch -D [브랜치명]

 

🔥 branch를 따로 파서 작업해야하는 이유?

협업을 할 때, 코드를 통째로 복사한 후, 원래 코드에 영향을 주지 않고 독립적으로 개발을 하기 위한 작업!!

만약 브랜치를 나누지 않고 작업하다가 여러 사람이 commit을 할 경우, 충돌이 발생할 수 있음

 

4. 수정 후 add-commit-push

  • 코드 생성, 수정 작업을 진행 후 add, commit, push를 통해 origin에 반영한다.
  • push 진행시 branch 이름을 명시해주어야 한다!!
git push origin [branch name]

 

5. Pull Request

  • push 완료 시 github에 들어가면 Compare & pull request 버튼이 활성화 되어있다.
  • 해당 버튼을 눌러 메세지를 작성하고 PR을 생성한다.

 

6. 코드 리뷰 & Merge PR

  • PR을 받은 원본 저장소 관리자가 코드 변경 내역을 확인하고 Merge 여부를 결정한다.

 

7. Merge

merge? 작업 내용을 합치는 것!

  1. 브랜치 상태 확인하기
    • git branch --merged 나 git branch --no-merged 옵션을 사용하여 merge가 된 브랜치인지 아닌지 필터링 할 수 있다.
  2. Merge 하기
    • 현재 브랜치에 [브랜치 명]의 변경사항을 병합한다.
    • git merge [브랜치 명]
  3. Merge 충돌 해결하기
    • 충돌 내용 확인해보기 : git은 충돌 내용을 보여준다.

      &&<<<<<<< HEAD
      {현재 브랜치의 다른 파일 내용}
      =======
      {충돌나는 브랜치명 또는 commit에서의 다른 파일 내용}
      >>>>>>> 충돌나는 브랜치명 또는 commmit 아이디
  4. 충돌 안나도록 사전작업
# 대상 브랜치로 이동
git checkout [대상브랜치]

# 대상 브런치의 로컬 최신화
git pull origin [대상브랜치]

# 다시 내 작업 브랜치로 이동
git checkout {작업 브랜치}

# 머지 요청
git merge [대상브랜치]

# 수정 후, add, commit, push 진행

 

8. Merge 이후 동기화 & Branch 삭제

  • 원본 저장소에 Merge가 완료된다면 로컬 브랜치와 원본 저장소의 코드를 동기화 한다.
  • 현재 변경 사항은 추가로 만든 branch(young)에서 작성되어 적용되었으니, 이를 main에 동기화시키는것.
  • 내 github repository에 들어가 main 브랜치임을 확인 후 Sync fork를 눌러서 Update branch를 누른다.
  • 이후 로컬의 main 브랜치와 동기화 시키기 위해 git pull origin main을 실행한다.
  • 다 끝나면 작업용으로 만든 로컬 branch를 삭제한다.

 

9. 반복 작업

  • 추가 작업할 일이 생긴다면 내 github repository에서 Sync fork 버튼을 눌러 동기화한다.
  • 이후, git pull origin main을 실행해 로컬과 동기화 시킨 후 위의 과정을 다시 반복하면 된다.

 

 

[참고]

https://velog.io/@dongvelop/Github-%ED%98%91%EC%97%85%ED%95%98%EA%B8%B0-PR%EB%B6%80%ED%84%B0-merge%EA%B9%8C%EC%A7%80

https://velog.io/@marksen/Git-Branch%EC%99%80-Merge

728x90