Git 사용법 및 브랜치 전략
Git 용법
Git 사용법 및 브랜치 전략
Git & GitHub 핵심 가이드북
1. Git 기본 명령어
저장소 생성 및 가져오기
git init- 현재 디렉토리를 Git 로컬 저장소로 초기화한다. (
.git폴더 생성)
- 현재 디렉토리를 Git 로컬 저장소로 초기화한다. (
git clone <원격-저장소-URL>- 원격 저장소의 프로젝트를 로컬 컴퓨터에 그대로 다운로드한다.
상태 확인 및 브랜치 관리
git status- 현재 브랜치 상태, 변경된 파일 명칭, 스테이징(add) 여부 등을 출력한다.
git branch- 전체 브랜치 목록을 출력한다.
*표시가 있는 곳이 현재 활성화된 브랜치다.
- 전체 브랜치 목록을 출력한다.
git switch -c <새-브랜치명>- 지정한 이름으로 브랜치를 새로 생성하고, 동시에 해당 브랜치로 이동한다.
- (기존에 존재하는 브랜치로 이동할 때는
-c없이git switch <브랜치명>만 사용)
변경사항 기록 (Commit)
git add <경로>- 변경사항이 있는 파일들을 스테이징 영역(Commit 대기 상태)에 추가한다.
git add .: 현재 디렉토리 및 하위 폴더의 모든 변경사항을 추가한다.git add ./Source/...: 특정 폴더나 파일 경로를 지정하여 선택적으로 추가한다.
git commit -m "<커밋-메시지>"- add된 파일들을 하나의 버전으로 기록하며, 대화상자 없이 쌍따옴표 내의 내용을 로그로 작성한다.
원격 저장소 동기화 (Push & Pull)
git fetch- 원격 저장소의 최신 이력을 확인하고 새로고침한다. (로컬 코드는 변경되지 않음)
git pull- 원격 저장소의 최신 코드를 가져와서 현재 로컬 브랜치에 병합(Merge)한다.
git push- 로컬에서 완료된 커밋들을 원격 저장소로 업로드한다.
2. 가끔 쓰는 명령어
git reset 옵션 세부 사양
단순히 명령어 취소 외에, 상황에 맞게 3가지 옵션으로 제어해야 안전하다.
git reset --soft HEAD~1: 최신 커밋 1개를 취소하지만, 내가 수정한 코드는 add된 상태로 그대로 유지한다.git reset --mixed HEAD~1: 기본값이다. 최신 커밋과 add를 모두 취소하지만, 작성한 코드는 로컬에 그대로 남겨둔다.git reset --hard HEAD~1: [주의] 최신 커밋, add, 그리고 작성 중이던 코드까지 모두 지정한 커밋 시점으로 강제 복구하며 삭제한다.
새 브랜치 최초 Push 설정
로컬에서 새로 만든 브랜치를 원격 저장소에 처음 올릴 때는, 원격 브랜치와의 추적 관계 설정을 위해 아래 명령어를 사용해야 에러가 나지 않는다.
git push -u origin <브랜치명>(이후부터는git push만 입력해도 자동으로 추적하여 업로드됨)
현 브랜치 다시 로딩하기
git restore . : 현재 작업했던 내역들을 없애고, 마지막 커밋된 내용들로 다시 로딩된다.
3. 표준 작업 흐름 (Workflow)
“1 브랜치 = 1 PR(Pull Request) = 1 커밋”을 유지하여 버전 관리의 복잡성을 줄이고 가독성을 높이는 정석 루틴이다.
핵심 원칙
- 메인 브랜치(main, master, dev)는 항상 배포 및 빌드가 가능한 안정 상태를 유지한다.
- 모든 신규 개발 및 수정은 메인 브랜치에서 분기한 별도의 기능 브랜치(feat/기능명)에서 수행한다.
실전 작업 절차 (예시: PlayerController 개발)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 1. 메인 브랜치로 이동 후 원격의 최신 변경사항을 반영한다.
git switch main
git fetch
git pull
# 2. 최신화된 메인 브랜치를 기준으로 새 작업 브랜치를 생성하고 이동한다.
git switch -c feat/playercontroller-create
# 3. 현재 브랜치가 올바르게 변경되었는지 검증한다.
git branch
# 4. 소스 코드 수정 및 개발 작업을 진행한다.
# 5. 작업이 끝나면 변경된 파일들을 확인하고 스테이징 영역에 올린다.
git add .
git status
# 6. 구현 내용을 명확히 기술한 커밋을 생성한다.
git commit -m "feat: 플레이어 컨트롤러 생성"
# 7. 생성한 기능 브랜치를 원격 저장소에 업로드한다.
git push -u origin feat/playercontroller-create
# 8. 푸시 완료 후, 다음 작업을 위해 다시 메인 브랜치로 복귀한다.
git switch main
This post is licensed under CC BY 4.0 by the author.