❓ 정의
- 분산 버전 관리 시스템(DVCS, Distributed Version Control System)으로, 코드의 변경 사항을 추적하고 여러 개발자가 효율적으로 협업할 수 있도록 도와주는 도구
❗ 사용이유
채용 공고를 보면 git 사용 경험을 우대하는 곳도 많고, 거의 필수라고 볼 수 있다.
✅ 브랜치를 활용하여 독립적인 작업을 수행하고 병합 가능
✅원격 저장소를 통해 팀원 간 코드 공유 및 협업 가능
✅변경 이력을 저장하여 과거 코드로 쉽게 되돌릴 수 있음
💠 주요 용어
1️⃣ Repository
- 로컬 저장소(Local Repository): 개발자가 자신의 컴퓨터에서 작업하는 공간
- 원격 저장소(Remote Repository): GitHub, GitLab, Bitbucket 같은 플랫폼에 존재하는 저장소
2️⃣ Commit
- 코드의 변경 사항을 기록하는 단위
git add . # commit할 전체 작업 내용 스테이지에 올려 준비하기
git commit -m "작업 내용 설명" # 로컬 브랜치에 변경 사항 기록
3️⃣ Branch
- 독립적인 작업을 위해 만들어지는 분기
- 목적에 따라 main(master), develop, feature, hotfix 등으로 나눌 수 있다.
git branch feature/login # 새로운 브랜치 생성
git checkout feature/login # 해당 브랜치로 이동
git switch feature/login # 해당 브랜치로 이동
git switch -c feature/login # 새로운 브랜치 만들어서 이동
git branch -D <삭제할 브랜치명> # 특정 브랜치 삭제
4️⃣ Merge
- 다른 브랜치의 변경 사항을 현재 브랜치로 합치는 작업
git checkout main # 메인 브랜치로 이동
git merge feature/login # feature/login 브랜치를 병합
🚩 협업을 위한 명령어
1️⃣ git 초기 설정
$ git config --global user.name "hojun.lee"
$ git config --global user.email email@example.com
해당 설정을 제대로 안하면 커밋내역에서 계정이름이 아니라 유저이름이 올라갈 수 있다.
2️⃣ 원격 저장소와 연결
git clone <저장소 주소> # 원격 저장소 복제
git remote add origin <저장소 주소> # 원격 저장소 등록
로컬에서 원격 저장소를 추적하기 위해 클론해온 저장소를 origin이라는 이름으로 연결 등록한다.
그래야 rebase, pull할 때 해당 레포지토리의 최신 정보를 불러올 수 있음!
3️⃣ 작업 내용 반영
git pull origin main # 최신 코드 가져오기
git add . # 변경 사항 스테이징
git commit -m "작업 내용 설명" # 변경 사항 저장
git push origin feature/login # 원격 저장소에 푸시
+ 원격 저장소에 지금 작업중인 로컬 브랜치가 없다면
git push -u origin <브랜치명>
을 해줘야 git push만으로도 간단히 push할 수 있다.
4️⃣ 코드 리뷰 및 병합
✅ pull
1. git fetch origin main으로 원격 브랜치의 최신 변경 사항을 가져오고,
2. git merge origin/main으로 로컬 브랜치에 변경 사항을 병합
즉, pull은 fetch와 merge를 동시에 수행하는 것과 같다.
✅ rebase
- rebase는 주로 로컬에서 개인 작업(feature)브랜치를 정리할 때 사용한다.
ex) feature 브랜치에서 작업하다가, main 브랜치의 최신 변경 사항을 반영해야 하는 경우
- git merge를 사용하면 불필요한 병합 커밋이 쌓이지만, rebase를 하면 병합 커밋이 없어 히스토리가 깔끔해진다.
- "git pull --rebase origin main"을 사용하면 최신 변경 사항을 내 로컬 브랜치에 적용할 수 있다.
git checkout feature-branch
git rebase main # 최신 main 브랜치를 feature 브랜치에 반영
참고: https://paullabworkspace.notion.site/GitHub-435ec8074bcf4353afb947f601a030df
'기타' 카테고리의 다른 글
배럴(barrel) 패턴 (4) | 2025.05.19 |
---|---|
Cursor에 github MCP 서버 연결해보기! (1) | 2025.04.09 |