ezinc 교육 자료
Search posts...
Books

Categories

  • All Posts16
  • 3rabbitz1
  • 클립리포트6
  • Ezworks3
  • Git6
Git Static Doc Server|Build: main#272(9c5dca0d)
Open Source Licenses
도서/가이드

개발 시작하기

학습 진도0%
0 / 4 문서
11장. EzWorks 개발 표준
팀 코딩 규칙Ezworks 데이터 바인딩 가이드Ezworks 요청 가이드
22장. 소스 제어 (Git)
🔀Git 사용 도구 선택
IntelliJ GUI 가이드커맨드라인 (CLI) 가이드
도서/가이드›개발 시작하기›2장. 소스 제어 (Git)
2장. 소스 제어 (Git)•2026년 5월 7일

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

경로 선택 (Alternative Path)

Git 사용 도구 선택

개발 시 주로 사용하는 Git 도구를 선택해 주세요. 선택한 도구에 맞는 맞춤형 가이드로 바로 안내합니다.

IntelliJ GUI 가이드

인텔리제이 내장 GUI 기능을 이용해 쉽고 직관적으로 Git 버전 관리를 수행합니다.

커맨드라인 (CLI) 가이드

터미널 CLI 환경에서 git 명령어를 직접 다루며 효율적으로 버전 관리를 수행합니다.

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 개발 플랫폼입니다. ↩︎

🎉 읽기 완료목차로 돌아가기