1) Mac에서 Git 설치하기
Mac에서는 Git 설치가 매우 간단하다.
기본적으로 터미널에서 git --version을 입력하면
macOS가 필요한 구성요소(Xcode Command Line Tools)를 자동으로 설치하도록 안내한다.
- cmd + space로 Spotlight를 열고 터미널을 실행
- 아래 명령을 입력
- git --version
- 설치 안내 창이 나타나면 설치 진행을 선택
- 설치가 완료되면 다시 git --version으로 버전을 확인
Homebrew를 사용 중이라면 brew install git로도 설치가 가능하다.
2) Git을 이해하는 기본 구조
Git을 제대로 쓰려면 내부 흐름 이해하기
2-1) Working Tree
사용자가 실제로 파일을 편집하는 공간이다.
Git이 추적하는 파일과 추적하지 않는 파일이 섞여 있고, 변경 사항이 아직 기록(커밋)되기 전 단계이다.
2-2) Staging Area
업로드(커밋) 전에 “이번에 기록할 변경만” 임시로 모아두는 곳이다.
- 보안상 올리면 안 되는 파일을 걸러내거나
- “로그인 기능 관련 파일만” 같은 작업 단위로 묶어 커밋하고 싶을 때 유용하다.
git add <파일/디렉터리>
git add .
2-3) Local Repository (.git 디렉터리)
Staging Area에 올려둔 변경을 진짜 히스토리로 남기는 곳이다.
여기서 만들어지는 단위를 커밋(commit)이라 부른다.
git commit -m "메시지"
로컬 저장까지 완료됐다면 이후 원격 저장소로 푸시하면 된다.
git push origin <브랜치명>
3) 자주 쓰는 Git 핵심 용어
3-1) Commit
Staging Area의 변경을 스냅샷으로 고정하는 행위이다.
각 커밋은 고유한 해시(Hash)로 식별된다.
커밋이 없으면 원격 저장소로 업로드할 수 없다
git commit -m "feat: 로그인 비밀번호 유효성 검사 추가"
3-2) Snapshot
커밋은 특정 시점의 프로젝트 상태를 사진 찍듯 저장한 것이다.
문제가 생기면 특정 커밋 해시를 기준으로 되돌리기가 가능하다.
3-3) HEAD
현재 작업 중인 커밋을 가리키는 포인터이다.
일반적으로는 “현재 체크아웃된 브랜치의 최신 커밋”을 의미한다.
3-4) Branch
작업 범위를 안전하게 분리하기 위한 줄기이다.
예: 회원가입/장바구니/결제처럼 기능 단위로 나누거나, 배포 단계(dev/stage/prod)별로 병렬 개발이 가능하다.
git switch -c feature/login # 새 브랜치 생성+이동
git switch main # 다른 브랜치로 이동
3-5) Merge
여러 브랜치에서 진행된 작업을 하나로 합치는 과정이다.
이때 같은 파일의 같은 부분을 동시에 수정했다면 충돌(conflict)이 발생할 수 있고, 사용자가 조정 후 다시 커밋하면 된다.
git switch main
git merge feature/login
4) 기본 명령어
4-1) git --help
Git은 핵심 명령은 적지만 옵션이 강력한 도구
모르는 것이 있으면 다음처럼 확인하는 습관이 좋다.
git --help
git commit --help
git log --help
4-2) git log
커밋 히스토리를 조회한다.
git log
자주 쓰는 옵션 예시
git log --oneline --graph --decorate --all
# 한 줄 요약, 브랜치 그래프, 참조 표시, 전체 브랜치 보기
특정 커밋의 작성자/시간/메시지/변경점 등도 git log와 다양한 옵션 조합으로 조회할 수 있다.
5) 워크플로 예시: 한 사이클
- 파일 편집
- 변경분 선택
- git add <파일들>
- 스냅샷 기록(커밋)
- git commit -m "feat: 로그인 폼 유효성 검사 추가"
- 원격 저장소로 업로드
- git push origin feature/login
- 메인으로 합치기(리뷰/검증 후)
- git switch main git merge feature/login git push origin main
'IT > Git & GitHub' 카테고리의 다른 글
| main에 쌓인 커밋 구조조정하기 (0) | 2025.11.30 |
|---|---|
| Git과 Github - 개발자가 알아야 할 버전 관리의 시작점 (0) | 2025.10.12 |
| Git Merge 옵션 : --ff, --no-ff, --squash (1) | 2025.08.29 |
| Git 커밋 메시지 규칙 (0) | 2024.10.26 |
| GitHub (0) | 2024.08.03 |