Git의 핵심 개념과 주요 명령어 요약
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
프로젝트 협업 및 버전 관리에 관심 있는 개발자
- 난이도: 초보자부터 고급 사용자까지 적용 가능*
핵심 요약
- Git은 분산 버전 관리 시스템으로,
working directory
→staging area
→local repository
→remote repository
의 흐름을 기반으로 작동 - 필수 명령어:
git init
,git clone
,git commit -m "메시지"
,git branch
,git merge
- 브랜치 작업:
git switch
로 브랜치 전환,git merge
로 병합,git pull --rebase
로 히스토리 정리
섹션별 세부 요약
1. Git 아키텍처
- 워킹 디렉토리: 파일 변경사항이 저장되는 공간
- 스테이징 영역: 커밋 전 파일 상태를 임시 저장
- 로컬 저장소: 커밋된 변경사항이 저장되는 공간
- 리모트 저장소: GitHub, GitLab 등 외부 서버와 동기화
2. 설치 및 설정
- OS별 설치:
- Linux: sudo apt install git-all
- macOS: Xcode 명령줄 도구 또는 git-scm.com 다운로드
- Windows: Git for Windows 설치 또는 Chocolatey 사용
- 전역 설정:
```bash
git config --global user.name "이름"
git config --global user.email "이메일"
```
- 유용한 설정:
- core.autocrlf
설정 (OS별로 차이 있음)
- .gitignore
파일 생성 (생성된 파일/민감 정보 제외)
3. 기본 명령어
git init
: 프로젝트 폴더에서 Git 저장소 초기화git clone [url]
: 리모트 저장소 복제 (예:git clone https://github.com/example/repo.git
)git status
: 변경된 파일, 스테이징 상태 확인git add [파일]
: 변경사항을 스테이징 영역으로 이동git commit -m "메시지"
: 변경사항을 커밋 (예:git commit -m "로그인 기능 수정"
)git log
: 커밋 히스토리 확인 (필터 옵션 적용 가능)git diff
: 변경사항 비교 (예:git diff
- 미스테이징 변경사항 확인)
4. 브랜치 관리
- 브랜치 생성:
git branch [이름]
- 브랜치 전환:
git switch [브랜치]
또는git checkout [브랜치]
- 병합:
git merge [브랜치]
(예:git merge feature/login
) - Fast-Forward vs No-FF:
- git merge --no-ff
로 병합 커밋 강제 생성
- git pull --rebase
로 히스토리 선형화
5. 협업 워크플로우
- Forking Workflow:
- 원본 저장소를 Fork → 로컬에 Clone → Pull Request 제출
- git remote add upstream <원본_URL>
로 업스트림 저장소 연결
- Gitflow:
- develop
, feature/
, release/
, hotfix/*
브랜치 사용
- feature
브랜치는 develop
에 병합 후, release
브랜치로 이동
결론
- .gitignore 파일 사용, 커밋 메시지 명확화,
git pull --rebase
로 히스토리 정리 - 협업 시 Pull Request 사용, 대규모 프로젝트는 Gitflow 모델 적용