Git 사용법

 

1. Git이란?

Git은 분산 버전 관리 시스템. 코드 변경 이력 관리 및 협업에 사용.

 

 

2. Git 설치

Windows

Git 공식 다운로드 → 실행 후 Git Bash 사용.

macOS

brew install git

Linux

sudo apt-get install git         # Debian/Ubuntu
sudo yum install git             # CentOS/RHEL

 

 

3. Git 기본 설정

git config --global user.name "홍길동"
git config --global user.email "hong@example.com"
git config --global core.editor "code --wait"

설정 확인:

git config --list

 

 

4. Git 기본 명령어

저장소 생성

git init

기존 저장소 클론

git clone <https://github.com/사용자명/저장소명.git>

특정 브랜치만 지정해서 클론(Clone)하기
git clone -b <브랜치명> <원격_저장소_URL>

파일 상태 확인

git status

변경사항 추적

git add 파일명
git add .           # 모든 변경 파일 추가

커밋 생성

git commit -m "커밋 메시지"

커밋 로그 확인

git log

 

 

5. 브랜치 관리

브랜치 생성

git branch 브랜치명

브랜치 이동

git checkout 브랜치명

브랜치 생성 후 이동

git checkout -b 브랜치명

브랜치 목록 확인

git branch

브랜치 병합

git checkout main
git merge 브랜치명

 

 

6. 원격 저장소 연결

원격 저장소 추가

git remote add origin <https://github.com/사용자명/저장소명.git>

원격 저장소 목록 확인

git remote -v

 

 

7. Push && Pull

Push

git push origin 브랜치명

Pull

git pull origin 브랜치명

 

 

8. 프로젝트 초기화 후 GitHub에 업로드

cd 프로젝트폴더
git init
git add .
git commit -m "프로젝트 초기 커밋"
git branch -M main
git remote add origin <https://github.com/사용자명/저장소명.git>
git push -u origin main

 

 

9. .gitignore 설정

.gitignore는 Git이 추적하지 않을 파일/디렉토리 목록을 설정하는 파일.

.gitignore 예시

1. 빌드 파일 제외

/dist
/build

2. IDE 설정 제외

.vscode/
.idea/

3. 운영체제 파일 제외

.DS_Store
Thumbs.db

.gitignore 사용법

  1. 파일 생성
  2. .gitignore 파일을 프로젝트 루트에 생성.
  3. 추적하지 않을 항목 지정
    # 빌드 파일 제외
    /dist
    /build
    
    # IDE 설정 제외
    .vscode/
    .idea/
    
    # 운영체제 파일 제외
    .DS_Store
    Thumbs.db
    
    
  4. .gitignore에 아래와 같이 작성.
  5. .gitignore 커밋
  6. git add .gitignore git commit -m "Add .gitignore file"
  7. 이미 추적 중인 파일 제외
    git rm --cached .DS_Store
    git commit -m "Stop tracking .DS_Store"
    
    
  8. 이미 Git이 추적 중인 파일을 제외하려면 git rm --cached 사용.
  9. 정규식 사용
    • 특정 확장자 파일 제외:
    • *.log
    • 특정 폴더 제외:
    • temp/
    • 특정 파일만 제외:
    • config.yaml
    • 하위 폴더의 파일 제외:
    • **/debug.log

.gitignore 규칙

  • 주석: # 뒤에 주석 작성.
  • # 빌드 파일 제외 /dist
  • 와일드카드: 로 패턴 지정.
  • *.log
  • 루트 디렉토리 지정: /로 루트 디렉토리에서만 적용.
  • /node_modules
  • 폴더 제외: 폴더 이름 뒤에 / 추가.
  • /temp/
  • 파일 다시 추적: !로 제외된 파일을 다시 추적.
  • *.log !debug.log

 

10. Git Reset 옵션 정리 (-mixed, -soft, -hard)

Git에서 reset은 커밋을 되돌릴 때 사용하는 명령어다.

옵션에 따라 커밋, 스테이징 영역, 작업 디렉토리 중 어떤 걸 유지할지 달라진다.

 

1. --mixed (기본값)

  • 커밋과 스테이징을 되돌림
  • 파일 수정 내용은 유지됨 (작업 디렉토리는 그대로)
git reset --mixed HEAD~1
# 또는 그냥
git reset HEAD~1

→ 커밋과 git add는 취소되지만 파일 내용은 그대로 남아 있음


2. --soft

  • 커밋만 되돌림
  • git add된 상태(스테이징)와 작업 파일은 그대로 유지됨
git reset --soft HEAD~1

→ 마지막 커밋만 취소되고, 변경사항은 git add된 상태로 남음


3. --hard

  • 커밋, 스테이징, 작업 디렉토리 전부 되돌림
  • 현재 작업 중인 모든 파일 변경사항도 삭제됨 (복구 불가)
git reset --hard HEAD~1

→ 완전히 해당 커밋 시점으로 되돌아감. 신중하게 사용해야 함


💡 HEAD^의 의미

  • HEAD^ = 현재 커밋의 바로 전 커밋
  • HEAD~1과 동일한 의미
git reset HEAD^

→ --mixed 옵션이 기본이라 git reset HEAD^는 git reset --mixed HEAD^와 같음


📝 요약 표

옵션 커밋 삭제 스테이징 제거 파일 수정 보존 설명

--mixed 커밋 + git add 취소 (기본값)
--soft 커밋만 취소, git add는 유지
--hard 완전 초기화, 되돌릴 수 없음

 


 

 

 


10. Git 유용한 명령어

명령어 설명

git diff 변경된 코드 비교
git reset 파일명 git add 이전으로 되돌리기
git reset --soft HEAD^ 마지막 커밋을 스테이징 상태로 되돌리기
git reset --mixed HEAD^ 마지막 커밋을 작업 디렉토리로 되돌리기
git reset --hard HEAD^ 마지막 커밋과 모든 변경사항을 삭제
git log --oneline 간단한 로그 보기
git stash 작업 임시 저장
git stash pop 임시 저장한 작업 복원
git clean -fd 추적되지 않은 파일 삭제

 

+ Recent posts