목차

    💡 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

    ⚠️ GIT FORCE PUSH 주의 : 팀원 작업 덮어쓰기 방지용 사전 공유 필수

    병합 충돌 해결

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

    기존 변경사항 완벽 제거

    GIT CLEAN & RESET : 원격 저장소와 동일 상태 동기화 및 미추적 파일 제거

    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 "fix 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 init : 로컬 저장소 생성 및 초기화
    • git add . : 전체 파일 스테이징 영역 추가
    • git commit -m "message" : 작업 내역 기록 및 커밋 생성
    • git branch -M main : 기본 브랜치명을 main으로 변경
    • git remote add origin [URL] : GitHub 원격 저장소 주소 등록
    • git push -u origin main : 원격 저장소 데이터 업로드 및 스트림 설정
    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

    작업 내역 병합 요청

    • GitHub 웹 저장소 접속
    • Compare & pull request 버튼 클릭
    • 변경 내역 확인 및 메시지 작성
    • Create pull request 선택을 통한 최종 요청 생성

    팀 커뮤니케이션 예시

    공용 파일 수정 시 충돌 방지를 위한 팀 사전 공지 필수

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

     

    '💡 Tech Note' 카테고리의 다른 글

    [Shortcut] 이클립스(Eclipse)  (0) 2026.04.13
    MySQL 명령어  (0) 2026.04.13
    [Shortcut] IntelliJ IDEA  (0) 2026.04.13
    [Shortcut] 노션(Notion)  (0) 2026.04.13