1-4. Git 기본 명령어: 파일 상태 확인과 변경 사항 추적

1. 파일 상태 관리의 중요성

Git은 분산 버전 관리 시스템으로서, 프로젝트의 변경 사항을 추적하고 관리하는 핵심 도구입니다. 개발 과정에서 발생하는 다양한 변경 사항들을 효율적으로 관리하기 위해서는 파일의 현재 상태를 정확하게 이해하는 것이 필수적입니다. Git은 파일의 상태를 세 가지 주요 영역으로 구분하여 관리합니다.

  • Working Directory (작업 디렉토리): 실제 파일을 수정하고 작업하는 공간입니다.
  • Staging Area (스테이징 영역): 커밋할 변경 사항들을 임시로 저장하는 공간입니다.
  • Repository (저장소): 변경 사항을 영구적으로 저장하는 공간, 즉 .git 디렉토리에 해당합니다.

Git은 이러한 세 영역 간의 관계를 통해 파일의 변경 사항을 추적하고 관리합니다. 파일의 상태를 이해하고 관리하는 것은 협업 환경에서 코드 충돌을 방지하고, 원하는 시점으로 되돌아가며, 효율적인 개발 프로세스를 구축하는 데 매우 중요합니다.

2. git status: 파일 상태 확인

git status 명령어는 현재 작업 디렉토리의 파일 상태를 확인하는 데 사용됩니다. 이 명령어를 통해 변경된 파일, 스테이징된 파일, 커밋되지 않은 파일 등 다양한 상태의 파일을 확인할 수 있습니다.

1) 주요 출력 정보

git status 명령어를 실행하면 다음과 같은 정보가 출력됩니다.

  • 현재 브랜치: 현재 작업 중인 브랜치의 이름.
  • Untracked files (추적하지 않는 파일): Git이 아직 추적하지 않는 파일들.
  • Changes not staged for commit (커밋되지 않은 변경 사항): 작업 디렉토리에서 수정되었지만 스테이징 영역에 추가되지 않은 파일들.
  • Changes to be committed (커밋할 변경 사항): 스테이징 영역에 추가된 파일들, 즉 다음 커밋에 포함될 파일들.

2) 예시와 해석

다음은 git status 명령의 예시입니다.

On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   index.html

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        style.css

위 출력 결과를 해석하면 다음과 같습니다.

  • 현재 브랜치는 main입니다.
  • index.html 파일이 수정되었지만, 아직 스테이징되지 않았습니다.
  • style.css 파일은 Git에 의해 추적되지 않는 새로운 파일입니다.

git status 명령어를 통해 파일의 상태를 파악하고, 다음 단계를 결정할 수 있습니다. 예를 들어, 변경 사항을 커밋하려면 git add 명령어를 사용하여 스테이징 영역에 추가해야 합니다.

git status 명령어 설명 뒤

3. git add: 변경 사항 스테이징

git add 명령어는 작업 디렉토리에서 변경된 파일들을 스테이징 영역에 추가하는 데 사용됩니다. 스테이징된 파일들은 다음 커밋에 포함될 파일들입니다.

1) 사용법

git add 명령어는 다음과 같이 사용합니다.

git add <파일 이름>
git add .
  • <파일 이름>: 특정 파일을 스테이징 영역에 추가합니다.
  • .: 현재 디렉토리의 모든 변경된 파일과 새로 생성된 파일을 스테이징 영역에 추가합니다.

2) 예시

# index.html 파일을 스테이징 영역에 추가
git add index.html

# 현재 디렉토리의 모든 변경 사항을 스테이징 영역에 추가
git add .

3) 원리

git add 명령어는 실제로 파일을 복사하는 것이 아니라, 파일의 변경 사항에 대한 정보를 Git의 인덱스에 기록합니다. Git은 이 정보를 사용하여 커밋할 변경 사항들을 추적합니다. 즉, 스테이징은 파일 자체를 변경하는 것이 아니라, 커밋에 포함될 파일 목록을 업데이트하는 과정입니다.

4. git commit: 변경 사항 커밋

git commit 명령어는 스테이징 영역에 추가된 변경 사항들을 로컬 저장소에 영구적으로 저장하는 데 사용됩니다. 각 커밋은 프로젝트의 특정 시점을 나타내며, 커밋 메시지를 통해 변경 사항에 대한 설명을 기록할 수 있습니다.

1) 사용법

git commit 명령어는 다음과 같이 사용합니다.

git commit -m "커밋 메시지"
  • -m "커밋 메시지": 커밋 메시지를 직접 입력합니다.

2) 커밋 메시지 작성 가이드

좋은 커밋 메시지는 코드 변경의 맥락을 이해하는 데 매우 중요합니다. 다음은 좋은 커밋 메시지를 작성하기 위한 몇 가지 팁입니다.

  • 명확하고 간결하게: 변경 사항을 요약하는 문장을 사용합니다.
  • 구체적으로: "수정함"과 같은 모호한 표현은 피하고, 구체적으로 어떤 부분을 수정했는지 명시합니다.
  • 동사로 시작: 커밋 메시지는 주로 명령형으로 시작하는 것이 좋습니다 (예: "Fix", "Add", "Update").
  • 본문 추가: 변경 사항에 대한 더 자세한 설명을 추가할 수 있습니다. 본문은 한 줄 이상의 간격을 두고 작성합니다.

3) 예시

git add index.html style.css
git commit -m "feat: added basic styling and initial content for the homepage"

위 예시에서는 index.htmlstyle.css 파일을 스테이징한 후, "feat: added basic styling and initial content for the homepage"라는 커밋 메시지와 함께 커밋했습니다.

4) 원리

git commit 명령어는 스테이징 영역에 있는 파일들의 현재 상태를 스냅샷으로 저장합니다. 각 커밋은 해당 스냅샷, 커밋 메시지, 그리고 이전 커밋에 대한 정보를 포함합니다. Git은 이러한 정보를 사용하여 프로젝트의 변경 이력을 관리하고, 특정 시점으로 되돌아갈 수 있도록 합니다.

git add, commit 과정 설명 뒤

5. 변경 사항 추적의 실제 활용

git status, git add, git commit 명령어를 사용하여 파일의 상태를 확인하고 변경 사항을 추적하는 과정을 살펴보겠습니다.

1) 새로운 파일 생성

  1. 새로운 파일 (예: about.html)을 생성합니다.
  2. git status 명령어를 실행합니다. about.html 파일이 "Untracked files"로 표시됩니다.
  3. git add about.html 명령어를 사용하여 about.html 파일을 스테이징합니다.
  4. git status 명령어를 다시 실행합니다. about.html 파일이 "Changes to be committed"로 표시됩니다.
  5. git commit -m "feat: added about page" 명령어를 사용하여 커밋합니다.

2) 파일 수정

  1. index.html 파일을 수정합니다.
  2. git status 명령어를 실행합니다. index.html 파일이 "Changes not staged for commit"로 표시됩니다.
  3. git add index.html 명령어를 사용하여 index.html 파일을 스테이징합니다.
  4. git commit -m "fix: updated homepage content" 명령어를 사용하여 커밋합니다.

3) 파일 삭제

  1. 파일 (예: old_file.txt)을 삭제합니다.
  2. git status 명령어를 실행합니다. old_file.txt 파일이 "deleted"로 표시됩니다.
  3. git add old_file.txt 명령어를 실행하거나, git add .을 사용하여 삭제된 파일을 스테이징합니다.
  4. git commit -m "refactor: removed old file" 명령어를 사용하여 커밋합니다.

이러한 과정을 통해 파일의 변경 사항을 추적하고, 필요한 시점에 변경 사항을 커밋하여 프로젝트의 상태를 관리할 수 있습니다.

6. 주의 사항 및 팁

1) 자주 git status 사용하기

git status 명령어는 현재 작업 디렉토리의 상태를 파악하는 데 매우 유용합니다. 변경 사항을 커밋하기 전에 항상 git status를 실행하여 파일의 상태를 확인하는 습관을 들이는 것이 좋습니다.

2) 스테이징 영역 확인

git add . 명령어를 사용하여 모든 변경 사항을 스테이징하는 경우, 커밋하기 전에 git status를 통해 스테이징된 파일들을 다시 한번 확인하는 것이 좋습니다. 불필요한 파일이 스테이징되지 않도록 주의해야 합니다.

3) 커밋 메시지 작성에 신중하기

좋은 커밋 메시지는 프로젝트의 유지보수성을 향상시키는 데 기여합니다. 변경 사항을 명확하게 설명하는 커밋 메시지를 작성하도록 노력해야 합니다.

4) 변경 사항 되돌리기

만약 잘못된 변경 사항을 커밋했거나, 스테이징 영역에서 불필요한 파일을 추가했다면, git restore 명령어를 사용하여 변경 사항을 되돌릴 수 있습니다. (자세한 내용은 다음 포스트에서 다룹니다.)

7. 결론

git status, git add, git commit 명령어는 Git을 사용하는 데 있어 가장 기본적이면서도 핵심적인 명령어입니다. 이 명령어들을 통해 파일의 상태를 확인하고, 변경 사항을 스테이징하고, 커밋하여 프로젝트의 변경 이력을 관리할 수 있습니다. 이러한 기본적인 개념들을 이해하고 익숙하게 사용하는 것은 Git을 효과적으로 활용하고, 협업 환경에서 원활하게 작업하는 데 필수적입니다.

비슷한 글 추천

Comments (0)

No comments yet. Be the first to comment!