ezinc 가이드 문서
Search posts...
  • Home

Categories

  • All Posts13
  • 클립리포트5
  • Ezworks3
  • Git2
  • 문서 작성 가이드3
Git•2026년 5월 7일

Git 가이드 - 커맨드라인 (CLI)

Git이란?

Git[1]은 프로젝트의 여러 인원이 동시에 작업을 진행하고 코드의 변경 이력 추적과 이전 버전으로 복원을 할 수 있도록 하는 분산형 버전 관리 시스템입니다.


Git의 용어

  • Repository (저장소)[2] Git으로 관리되는 프로젝트의 전체 파일과 변경 이력이 저장되는 공간이며, 로컬(Local) 저장소와 원격(Remote) 저장소로 구분됩니다.

  • Stage, Index (스테이지, 인덱스) Git에서 변경사항(Commit)을 생성하기 전 대상이 될 파일을 임시로 저장해두는 영역입니다.

  • Commit (커밋) 변경된 파일을 저장소에 기록하는 작업입니다. 커밋을 수행하면 해당 시점의 코드 상태가 저장됩니다.

  • Branch (브랜치) 독립적으로 작업할 수 있도록 생성된 개발 라인입니다. 기본 브랜치는 main 또는 master 입니다.

  • Merge (병합) 다른 브랜치에서 작업한 내용을 현재 브랜치로 합치는 작업입니다.

  • Push (푸시) 로컬 저장소의 커밋을 원격 저장소로 업로드합니다.

  • Pull (풀) 원격 저장소에서 변경된 커밋을 로컬 저장소로 가져옵니다.

  • Checkout (체크아웃) 특정 브랜치나 커밋으로 이동하는 작업입니다.

  • Reset (리셋)[3] 특정 커밋으로 되돌리는 작업입니다. 원격 저장소에 공유된 커밋은 되돌리지 않는 것을 권장합니다.

  • Revert (리버트) 특정 커밋의 변경 사항을 되돌리는 작업입니다. 기존 커밋을 유지한 채 새로운 되돌림 커밋을 생성합니다.

  • Fetch (패치) 원격 저장소에서 변경 사항을 가져옵니다. 로컬 브랜치는 변경되지 않으며 원격 추적 브랜치를 업데이트 합니다.

  • Conflict (충돌)[4] 병합 과정에서 동일한 부분이 각 브랜치간 다르게 수정되었을 때 발생하는 충돌입니다. 수동으로 해결하여야 합니다.

저장소 복제하기 - Clone

원격 저장소의 내용을 로컬로 복제하려면 git clone 명령어를 사용합니다.

# 저장소 복제
git clone <저장소_URL>

브랜치 생성 및 변경

브랜치를 생성하고 해당 브랜치로 이동(체크아웃)하는 방법입니다.

# 새 브랜치 생성 및 이동
git checkout -b <새_브랜치명>

# 또는 최신 방식 (Git 2.23+)
git switch -c <새_브랜치명>

TIP

main 브랜치에 직접 커밋하기보다는 작업용 브랜치를 생성하여 작업하는 것이 좋습니다.

브랜치 변경하기 - Checkout

WARNING

이 작업을 수행하기 전 넥사크로[5] 내 열린 탭이나 리포팅 툴 등 쓰기모드로 프로젝트 파일을 읽고 있는 프로그램을 종료하여 주시기 바랍니다.

# 기존 브랜치로 이동
git checkout <브랜치명>

# 또는 최신 방식
git switch <브랜치명>

현재 상태 및 브랜치 확인

# 현재 브랜치 및 변경 상태 확인
git status

# 브랜치 목록 확인
git branch

변경 사항 저장하기 - Commit

커밋은 작업 디렉토리의 변경 사항을 로컬 저장소에 기록하는 과정입니다. 커밋을 하기 위해서는 먼저 변경된 파일들을 스테이지(Stage) 영역에 올려야 합니다.

1. 변경된 파일을 스테이지에 추가 - git add

git add는 작업 디렉토리의 변경 내용을 스테이지 영역에 추가하여 다음 커밋에 포함될 준비를 하는 명령어입니다.

# 특정 파일 하나만 추가
git add <파일명>

# 변경된 모든 파일 추가 (새로 생성된 파일 포함)
git add .

# 수정된 파일만 추가 (새로 생성된 파일 제외)
git add -u

2. 대화형 스테이징 - git add -i

git add -i 명령어를 사용하면 대화형 인터페이스를 통해 커밋할 파일을 세밀하게 선택하고 검토할 수 있습니다.

# 대화형 모드 시작
git add -i

실행 예시:

  1. 명령어를 입력하면 현재 상태와 메뉴가 나타납니다.

               staged     unstaged path
      1:    unchanged        +1/-1 README.md
      2:    unchanged        +5/-0 src/main.js
    
    *** Commands ***
      1: status      2: update      3: revert      4: add untracked
      5: patch       6: diff        7: quit        8: help
    What now>
    
  2. update (2번)를 입력하여 파일을 스테이지에 올릴 준비를 합니다.

    What now> 2
               staged     unstaged path
      1:    unchanged        +1/-1 README.md
      2:    unchanged        +5/-0 src/main.js
    Update>>
    
  3. 스테이지에 올릴 파일 번호를 입력합니다. (예: 1번 파일 선택)

    Update>> 1
              * 1:    unchanged        +1/-1 README.md
      2:    unchanged        +5/-0 src/main.js
    Update>>
    

    번호 앞에 * 표시가 생기면 선택된 것입니다. 선택을 마쳤으면 엔터를 칩니다.

  4. 다시 메인 메뉴로 돌아오며, 파일이 스테이지에 올라간 것을 확인할 수 있습니다.

    Update>>
    updated 1 path
    
               staged     unstaged path
      1:        +1/-1      nothing README.md
      2:    unchanged        +5/-0 src/main.js
    
    *** Commands ***
      1: status      2: update      3: revert      4: add untracked
      5: patch       6: diff        7: quit        8: help
    What now> 7
    Bye.
    

    quit (7번)을 입력하여 종료합니다.

대화형 모드에서 자주 사용되는 메뉴는 다음과 같습니다:

  • status (1): 현재 변경된 파일들의 상태를 요약해서 보여줍니다.
  • update (2): 이미 추적 중인 파일의 변경 사항을 스테이지에 추가합니다.
  • revert (3): 스테이지에 추가된 파일을 다시 워킹 디렉토리로 내립니다.
  • add untracked (4): 새로 생성된 파일(untracked)을 스테이지에 추가합니다.
  • patch (5): 파일의 변경 사항 중 일부(hunk)만 선택하여 스테이지에 추가할 수 있습니다. (매우 유용한 기능)

3. 커밋 생성 - git commit

스테이지에 올라온 파일들을 하나의 기록으로 저장합니다.

# 커밋 생성 (에디터 열림)
git commit

# 커밋 메시지를 바로 입력하여 생성
git commit -m "커밋 메시지"

반드시 커밋 메시지를 상세히 작성하여 변경 이유를 명확히 남기는 것이 좋습니다.

변경사항 받아오기 - Fetch & Pull

# 원격 저장소의 최신 정보만 가져오기 (로컬 코드 반영 X)
git fetch origin

# 원격 저장소의 변경 사항을 가져와서 현재 브랜치에 합치기
git pull origin <브랜치명>

WARNING

Pull 수행 전 수정 중인 파일의 점유를 해제(탭 닫기 등)하시기 바랍니다.

브랜치 병합 - Merge

다른 브랜치의 내용을 현재 브랜치로 합치는 방법입니다.

# 1. 내 브랜치로 이동
git checkout my-branch

# 2. 다른 브랜치(예: main)를 병합
git merge main

WARNING

Merge 수행 전 수정 중인 파일의 점유를 해제하시기 바랍니다.

원격 저장소로 업로드 - Push

# 현재 브랜치의 커밋을 원격 저장소로 업로드
git push origin <브랜치명>

커밋 되돌리기 - Revert

이미 생성된 커밋의 변경 사항을 되돌리는 새로운 커밋을 생성합니다.

# 특정 커밋 되돌리기
git revert <커밋_해시>

NOTE

커밋 해시는 git log 명령어로 확인할 수 있습니다.

특정 시점의 파일을 복원하기

# 특정 커밋의 특정 파일만 가져오기
git checkout <커밋_해시> -- <파일_경로>

충돌 해결하기 - Conflict

충돌 발생 시 Git은 파일 내에 충돌 표시자를 삽입합니다.

  1. 충돌이 발생한 파일을 열어 내용을 수정합니다.
    • <<<<<<< HEAD 부터 ======= 까지가 현재 브랜치의 내용
    • ======= 부터 >>>>>>> 까지가 병합하려는 브랜치의 내용
  2. 수정 완료 후 파일을 저장합니다.
  3. 수정된 파일을 스테이지에 추가하고 커밋합니다.
git add <충돌_해결_파일명>
git commit -m "Fix conflict"


  1. Git 공식 웹사이트 ↩︎

  2. 프로젝트 루트의 .git 디렉토리에 데이터가 저장됩니다. ↩︎

  3. Reset은 --soft, --mixed, --hard 모드가 있으며, 공유된 브랜치에서는 주의해서 사용해야 합니다. ↩︎

  4. 텍스트 파일은 행 단위, 바이너리 파일은 파일 단위로 충돌을 체크합니다. ↩︎

  5. 이 프로젝트의 UI 개발 플랫폼입니다. ↩︎

← Back to all posts