안녕하세요! 오늘은 어렵디 어려운 깃허브 연동 방법에 대해 알아보려고 해요 😎
본격적으로 시작하기에 앞서서 GitHub Organization에 대해 알아볼게요
GitHub Organization은 쉽게 말해 여러 사람들이 모여서 프로젝트를 관리하고 협업할 수 있는 그룹 계정 같은 거라고 이해하시면 댈것같아요!!
GitHub Organization의 구조는 소유자,일반 멤버, 팀 이렇게 구성되어 있어요
Owner(소유자) : 조직 전체를 관리할 수 있어요. (멤버 초대, 저장소 삭제, 권한 변경 등)
Member(일반 멤버) : Owner가 정해둔 범위 내에서 저장소에 접근 가능
Team(팀) : 멤버들을 묶어서 권한을 관리할 수 있음
예를 들어 프론트엔드 팀, 백엔드 팀을 나누는 식이죠!
저는 학교에서 진행하는 전공 동아리만의 Organization이 있어 동아리 Organization을 통해서 레포지스토리를 생성하고 어떻게 많은 사람들과 협업하는지에 대해 차근차근 알아보아요🔥🔥
Repository name
새 레포지토리 이름을 적는 칸
→ 영어 소문자, 숫자, -
(하이픈) 사용 가능
→ 띄어쓰기는 허용되지 않으니 대신 -
를 쓰는 게 일반적
Description
레포지토리에 대한 간단한 설명을 쓰는 칸
→ 필수는 아니지만 써두면 다른 사람들이 이 레포가 어떤 프로젝트인지 쉽게 이해할 수 있음
⭐위와 같은 방식으로 Organization에 레포를 생성할 수가 있어요!!⭐
Organization에서 협업할 때도 필수 스킬이라고 불리는 포크에 대해 이제 설명드릴게요!
포크란 다른 사람(또는 다른 조직)의 저장소(repo)를 내 계정/우리 Organization으로 ‘복제’해서, 독립적으로 수정·실험할 수 있게 만든 저장소입니다!
포크를 사용해야하는 이유는 크게 3가지 정도가 있는데요 ㅇㅅㅇ
상황 | 왜 포크? | 핵심 포인트 |
---|---|---|
오픈소스 기여 | 원본에 쓰기 권한 없음 | 이슈 → 포크 → 브랜치 → PR → 리뷰/머지 |
내부 레포 권한 없음 | 정책/권한 제한 | Private 포크 허용 여부, CI 승인 흐름 확인 |
대규모 실험/리팩토링 | 원본에 영향 없이 독립 실험 | 장기 포크 운영(주기적 rebase), Draft PR로 방향 합의 |
위와 같은 이유들로 포크를 저희는 사용해요!
그중에서 가장 저희가 많이 쓰는 이유는 내 마음대로 실험·리팩토링 하고 싶을 때 원본에 영향을 주고 싶지 않을때 자주 사용하겟죠..?헤헿
원본 저장소(Upstream)를 포크
→ GitHub에서 Fork
버튼 클릭!
내 포크(Origin)를 로컬에 클론
git clone https://github.com/<내계정>/<forked-repo>.git
cd <forked-repo>
원본 저장소를 upstream
Remote로 추가
git remote add upstream https://github.com/<원본소유자>/<원본레포>.git
git remote -v # origin, upstream 확인
새 브랜치에서 작업 → 커밋
git checkout -b feat/my-change
# 코드 수정 후
git add .
git commit -m "feat: 멋진 기능 추가"
내 포크(origin)로 push
git push -u origin feat/my-change
원본 저장소로 Pull Request(PR) 오픈
코드 리뷰 → 수정 → 머지!
브랜치는 말 그대로 나뭇가지처럼 코드 흐름을 분리한 것이에요!
프로젝트의 메인 코드(main/master)에서 가지를 쳐서 새로운 작업 공간을 만드는 개념이에요.
새로운 기능이나 버그 수정을 안전하게 실험할 수 있고, 다 끝난 후에는 다시 main 브랜치에 합치는 걸 merge(병합)라고 해요.
💖 브랜치를 쓰면 원본(main)은 안전하게 두고, 새로운 기능은 독립된 공간에서 자유롭게 실험할 수 있어요! 💖
- 원본 코드(main)를 안전하게 보호😶🌫️
- main에서 직접 고치면 프로젝트 전체에 영향 → 위험!
- 브랜치에서 마음껏 수정하고 테스트 가능
- 각자 독립된 공간에서 개발 → 충돌 최소화💥💥
- 동시에 작업해도 main은 깨끗하게 유지!
- 협업 시 코드 리뷰, 기능 단위 관리가 수월해짐
- 버그 수정, 긴급 패치 등도 별도 브랜치로 처리
$ git switch -c users
git switch -c {브랜치명} {기준브랜치}
{기준브랜치}
는 생략 가능 (생략 시 현재 브랜치를 기준으로 생성됨)
main 브랜치로 이동
$ git switch main
users 브랜치를 main에 병합
$ git merge users
업데이트된 main을 리모트에도 반영
$ git push origin main
작업한 브랜치를 리모트에 push
$ git push origin users
* GitHub에서 **PR(Pull Request)** 생성
* 팀원 리뷰 → 승인되면 main에 병합
로컬 브랜치 삭제
$ git branch -d users
리모트 브랜치 삭제
$ git push origin --delete users
# 현재 브랜치 확인
git branch
# 새 브랜치 생성
git branch feat/login
# 브랜치 이동
git checkout feat/login
# (최신 git에서는)
git switch feat/login
# 브랜치 생성 + 이동 동시에
git checkout -b feat/login
# 또는
git switch -c feat/login
# 브랜치 삭제
git branch -d feat/login
# main으로 이동
git checkout main
# main 최신화
git pull origin main
# feat/login 브랜치 병합
git merge feat/login
# 결과 푸시
git push origin main
오늘은 GitHub Organization, Fork, Branch까지 차근차근 정리해봤어요!
처음에는 조금 헷갈릴 수 있지만, 직접 따라 해보면서 익숙해지면 협업이 훨씬 수월해진답니다 ㅎㅎ
앞으로 팀 프로젝트를 하거나 오픈소스에 기여할 때 꼭 도움이 되길 바라요! ✨
참고 자료 : Organization 만드는 방법
참고 자료 : https://codingtoday.tistory.com/86
참고 자료 : https://6mini.github.io/git/2022/06/12/branch/
허거걱 이제 GitHub 연동을 완벽하게 이해할 수 있을 것 같아요~! ♥️
이걸 활용해서 GitHub 연동을 잘 해볼게용~