
안녕하세요. 저는 싸피 공식 기자단 SSAFYcial 12기 강지민 기자입니다!
지난 시간에는 Git의 기본 명령어들을 알아보았는데요. 오늘은 팀 프로젝트에서 꼭 필요한 Git 협업 명령어들을 소개해 드리려고 합니다. 성공적인 팀 프로젝트의 열쇠가 될 이 명령어들, 함께 알아볼까요? 💪
팀 프로젝트에서는 여러 개발자가 동시에 작업하기 때문에 브랜치 관리가 매우 중요합니다.
브랜치 생성 및 이동
새로운 기능 개발이나 버그 수정을 위한 브랜치를 만들고 관리합니다.
# 브랜치 목록 확인 git branch # 새 브랜치 생성 (현재 브랜치 기준) git branch feature/login # 새 브랜치 생성 및 이동 git checkout -b feature/login # 기존 방식 git switch -c feature/login # 새 방식 # 다른 브랜치로 이동 git checkout main # 기존 방식 git switch main # 새 방식브랜치 삭제
작업이 완료된 브랜치는 깔끔하게 정리합니다.
# 로컬 브랜치 삭제 git branch -d feature/login # 원격 브랜치 삭제 git push origin --delete feature/login
Git의 가장 큰 특징은 변경사항을 단계적으로 추적하고 커밋할 수 있다는 점입니다. Git 2.23부터는 restore 명령어가 워킹 디렉토리 변경사항 관리를 위해 새롭게 도입되었습니다😮
변경사항 관리
# 현재 상태 확인 (-s: 짧은 형식) git status -s # 변경사항 자세히 보기 git diff # 워킹 디렉토리와 스테이징 영역 비교 git diff --staged # 스테이징 영역과 마지막 커밋 비교 # 파일 스테이징 (. 은 모든 변경사항) git add . # 스테이징된 파일 되돌리기 git reset HEAD <file> # 기존 방식 git restore --staged <file> # 새 방식 # 변경사항 커밋 git commit -m "feat: 로그인 기능 구현"
팀 프로젝트에서는 원격 저장소와의 안정적인 동기화가 매우 중요합니다. fetch와 pull의 차이를 이해하고 적절히 사용해야 합니다🤓
fetch는 원격 변경사항을 로컬로 가져오기만 하는 반면, pull은 가져온 변경사항을 현재 브랜치에 자동으로 병합까지 수행합니다. 예를 들어 팀원 A가 작업한 내용을 살펴보기만 하고 싶다면 fetch를, 그 변경사항을 내 브랜치에 반영하고 싶다면 pull을 사용하면 됩니다.
# 원격 저장소 정보 확인 git remote -v # 원격 브랜치 정보 가져오기 (병합하지 않음) git fetch origin git fetch --all # 모든 원격 저장소에서 가져오기 # 원격 변경사항 가져와서 현재 브랜치에 병합 git pull origin main git pull --rebase origin main # rebase 방식으로 병합 # 로컬 변경사항 원격에 push git push origin feature/login git push -u origin feature/login # 업스트림 브랜치 설정하며 push
Git은 두 가지 주요 브랜치 통합 전략을 제공합니다. merge는 두 브랜치의 변경사항을 하나로 합치는 반면, rebase는 한 브랜치의 커밋들을 다른 브랜치 위로 재배치합니다.
# 브랜치 병합 git switch main git merge feature/login git merge --no-ff feature/login # fast-forward 하지 않고 병합 # rebase로 커밋 재배치 git switch feature/login git rebase main # 병합 충돌 발생 시 git status # 충돌 파일 확인 # 충돌 해결 후... git add . # 해결된 파일 스테이징 git merge --continue # 병합 계속 # 또는 git rebase --continue # rebase 계속
작업 중인 변경사항을 임시로 저장하고 나중에 복원할 수 있습니다. 브랜치 전환이 필요할 때 매우 유용합니다.
# 현재 변경사항 임시 저장 git stash push -m "로그인 페이지 작업 중" git stash # 메시지 없이 저장 # stash 목록 확인 git stash list # 임시 저장한 작업 복원 git stash pop # 가장 최근 stash 복원 및 삭제 git stash apply stash@{0} # 특정 stash 복원 (삭제 X)
실수로 잘못 커밋한 경우나 커밋 메시지를 수정해야 할 때 사용하는 명령어들입니다.
# 마지막 커밋 수정 git commit --amend -m "수정된 커밋 메시지" git commit --amend --no-edit # 메시지는 유지하고 변경사항만 추가 # 이전 커밋으로 되돌리기 git reset --soft HEAD~1 # 커밋만 취소 (변경사항은 스테이징 영역에 유지) git reset --mixed HEAD~1 # 커밋과 스테이징 취소 (변경사항은 워킹 디렉토리에 유지) git reset --hard HEAD~1 # 커밋, 스테이징, 워킹 디렉토리 모두 되돌리기 (주의!)
출처 - GIT Reference
이렇게 Git의 협업 명령어들을 알아보았습니다. 처음에는 어려워 보일 수 있지만, 실제 프로젝트에서 하나씩 사용해 보면서 익숙해지시면 됩니다. 특히 브랜치 관리와 충돌 해결은 처음에는 조심스럽게 접근하시되, 팀원들과 충분한 소통을 하면서 진행하시면 좋습니다👍🏻
여러분의 성공적인 팀 프로젝트를 응원합니다! 그럼 20000😎
SSAFY에 대해 더 알고 싶다면 Hellossafycial 인스타그램과 SSAFY 홈페이지 CLICK✅
