💡 Tech Note

Git 명령어 완벽 가이드: 초기 설정부터 협업까지

this.Serena 2026. 4. 13. 14:06

 

1. 기본 명령어

기본 업로드 흐름

git add .
git commit -m "커밋 메시지"
git push origin main

상태 확인 및 파일 생성

명령어 설명
git status 현재 작업 디렉토리 상태 확인
touch README.md 빈 README.md 파일 생성

add 취소

git reset              # 전체 add 취소
git reset 파일명        # 특정 파일만 add 취소

파일 단일 업로드

git add src/App.java
git commit -m "Update App.java"
git push origin main

2. 커밋 관리

명령어 설명
git commit --amend -m "수정 메시지" 가장 최근 커밋 메시지 수정
git log --oneline 최근 커밋 목록을 한 줄씩 간결하게 확인
git rebase -i HEAD~2 마지막 2개 커밋 합치기 (squash)

커밋한 파일 제거

대용량 파일이나 민감 정보가 포함된 파일을 커밋 이력에서 완전히 제거할 때 사용합니다.

  • git filter-branch: Git 내장 명령어 (느리지만 별도 설치 불필요)
  • BFG Repo-Cleaner: 외부 도구 (빠르고 간편)

3. 브랜치 관리

브랜치 확인

명령어 설명
git branch 로컬 브랜치 목록 확인
git branch -r 원격 브랜치 목록 확인
git branch -a 전체(로컬 + 원격) 브랜치 목록 확인

브랜치 이동 및 생성

git checkout feature-shy    # 해당 브랜치로 이동 (없으면 생성)

4. 동기화 및 충돌 해결

원격 저장소 강제 동기화

로컬 변경사항을 버리고 원격 저장소 상태로 완전히 맞출 때 사용합니다.

git fetch origin              # 원격의 최신 변경사항을 가져옴 (병합 없이 포인터만 업데이트)
git reset --hard origin/main  # 로컬을 원격 main 상태로 강제 이동 (로컬 변경사항 영구 삭제)

강제 Push

git push -f origin main

⚠️ 협업 시 강제 push는 다른 팀원의 작업을 덮어쓸 수 있으므로 반드시 사전 공유 후 사용하세요.

병합 충돌 해결

git stash          # 현재 변경사항을 임시 저장
git pull           # 원격 변경사항 가져오기
git stash pop      # 임시 저장한 변경사항 다시 적용

기존 변경사항 완벽 제거

추적되지 않은 파일(untracked)까지 모두 제거하여 원격과 완전히 동일한 상태로 만듭니다.

git fetch origin
git reset --hard origin/main
git clean -fd                # -f(강제), -d(디렉토리 포함) 미추적 파일 및 폴더 삭제

강제 Pull (가장 확실한 동기화)

git fetch --all
git reset --hard origin/main
git pull origin main

5. 캐시 및 성능 관리

Git 캐시 클리어

.gitignore 변경 후 캐시를 초기화하여 무시 규칙을 재적용할 때 사용합니다.

git rm -r --cached .
git add .
git commit -m "cache cleared"

Git 저장소 느려질 때

git gc --aggressive    # 저장소 최적화 (가비지 컬렉션)
git prune              # 불필요한 객체 제거

6. 빌드 및 배포 (GitHub Pages)

npm install -D gh-pages        # gh-pages 패키지 설치
npm run build                  # 프로젝트 빌드
npx gh-pages -d dist -b gh-pages   # dist 폴더를 gh-pages 브랜치로 배포

7. 초기 설정 가이드

새 프로젝트를 Git 저장소로 만들고 GitHub에 연결하는 전체 과정입니다.

echo "프로젝트 설명" >> README.md           # README 파일 생성
git init                                    # 현재 폴더를 Git 저장소로 초기화
git branch -M main                          # 기본 브랜치 이름을 main으로 변경
git remote add origin [레포URL]              # 원격 저장소 연결
git pull origin main --allow-unrelated-histories  # 원격 초기 파일 병합 (README 있으면 필수)
git status
git add .
git commit -m "Initial commit"
git push -u origin main                     # 첫 푸시 및 업스트림 설정 (브랜치 추적)

8. 협업 가이드

작업 및 Push 흐름

git add .
git commit -m "커밋 메시지 작성"
git push origin feature-shy

Pull Request

Push 후 GitHub 웹사이트에서 Pull Request를 생성합니다.

팀 커뮤니케이션 예시

충돌 방지를 위해 공용 파일 수정 시 팀에 반드시 공지합니다.

[공지] ActionFactory 수정할게요. 5분간 Pull 금지
[완료] ActionFactory 수정 끝! Pull 받으세요~