Git add 명령어 사용 중 실수를 해도 괜찮습니다. Git은 파일을 4가지 상태로 구분하며, git add는 이 상태들을 관리하는 중간 다리 역할을 합니다. 잘못 추가한 파일은 쉽게 취소할 수 있습니다.
Git이 파일 변화를 인식하는 4가지 상태는 무엇인가요?
Git은 파일을 단순히 존재 유무로만 판단하지 않고, 변경 이력을 추적하기 위해 총 4가지 상태로 구분합니다. 이 상태들을 이해하는 것이 git add, git commit, git status와 같은 명령어의 필요성을 파악하는 데 중요합니다. 첫 번째 상태는 'Untracked'로, Git이 아직 관리하지 않는 새로운 파일입니다. 즉, 한 번도 git add 명령어를 실행하지 않은 상태를 의미합니다. Git은 이 파일의 변경 사항을 전혀 추적하지 않습니다. 예를 들어, 새로 생성한 파일을 아직 add 하지 않은 경우가 여기에 해당합니다.
두 번째 상태는 'Tracked'로, Git이 이미 추적하고 있는 파일들을 의미합니다. Tracked 상태는 다시 세 가지 하위 상태로 나뉩니다. 첫째, 'Unmodified'는 가장 최근 커밋 내용과 동일한 상태로, 워킹 디렉토리의 파일과 커밋된 버전이 일치하는 경우입니다. 커밋 직후 모든 파일은 이 상태가 됩니다. 둘째, 'Modified'는 최신 커밋과 비교했을 때 내용이 변경되었지만, 아직 git add를 하지 않아 스테이징되지 않은 상태를 말합니다. 셋째, 'Staged'는 수정된 파일을 git add 명령어를 통해 Staging Area(준비 구역)로 올린 상태로, 다음 커밋에 포함될 파일로 지정된, 즉 커밋 직전 단계를 의미합니다.
Git Add는 정확히 어떤 역할을 하며, 어떻게 사용하나요?
관련 글
Git add 명령어는 Git이 파일의 변경 사항을 인식하고 다음 커밋을 위해 준비하는 Staging Area로 파일을 옮기는 핵심적인 역할을 합니다. 예를 들어, 두 개의 파일(rps.py, LICENSE)을 수정한 후, `git add rps.py` 명령어를 실행하면 rps.py 파일만 Staging Area에 올라가 다음 커밋에 포함될 준비를 합니다. 이때 `git status` 명령어를 사용하면 'Changes to be committed' 섹션에 rps.py가 표시되고, 'Changes not staged for commit' 섹션에는 아직 add 되지 않은 LICENSE 파일이 나타납니다. 이 상태에서 커밋하면 rps.py는 최신 수정본으로, LICENSE는 이전 버전으로 커밋됩니다.
두 파일 모두 스테이징하려면 각각 `git add rps.py`와 `git add LICENSE`를 실행하거나, 여러 파일을 한 번에 스테이징할 수 있습니다. 또한, 새로운 폴더와 그 안의 파일들을 한 번에 스테이징하고 싶다면, `git add <폴더명>` 명령어를 사용하면 해당 폴더 내의 모든 파일이 한 번에 Staging Area에 추가됩니다. 예를 들어, 'dev-notes' 폴더와 그 안의 'monday_plan', 'tuesday_update' 파일을 모두 스테이징하려면 `git add dev-notes` 명령 하나로 충분합니다. 수정된 파일을 다시 add하면, Staging Area의 내용이 최신 수정본으로 덮어쓰여집니다.
Git Add 실수, 어떻게 취소하고 되돌릴 수 있나요?
Git add 명령어를 잘못 사용하여 원치 않는 파일까지 스테이징했더라도 걱정할 필요 없습니다. Staging Area에 올라간 파일을 취소하는 방법은 간단합니다. 이미 add된 파일을 Staging Area에서 제거하려면, `git restore --staged <파일명>` 명령어를 사용하면 됩니다. 예를 들어, LICENSE 파일을 잘못 add했다면 `git restore --staged LICENSE` 명령으로 Staging Area에서만 제거할 수 있습니다. 이 명령어는 해당 파일의 워킹 디렉토리 변경 사항은 그대로 유지하면서, Staging Area에만 올라갔던 내용을 취소하는 역할을 합니다.
만약 Git add 명령어를 실행하기 전, 즉 파일을 수정만 한 상태(Modified)에서 add를 취소하고 싶다면, `git restore <파일명>` 명령어를 사용합니다. 이 명령어는 워킹 디렉토리의 변경 사항을 가장 최근 커밋된 버전으로 되돌립니다. 따라서, Staging Area에서 파일을 제거할 때는 `git restore --staged`를, 워킹 디렉토리의 변경 사항까지 모두 취소하고 싶을 때는 `git restore`를 사용해야 합니다. 이 두 명령어를 상황에 맞게 구분하여 사용하면 Git add 실수를 효과적으로 관리할 수 있습니다.
Git 명령어 도움말은 어떻게 찾아서 활용하나요?
Git 명령어 사용법이 헷갈릴 때는 Git 자체적으로 제공하는 도움말 기능을 활용하는 것이 가장 정확하고 빠릅니다. 대부분의 Git 명령어 뒤에 `--help` 옵션을 붙이면 해당 명령어에 대한 상세한 설명과 사용 예시를 볼 수 있습니다. 예를 들어, `git add --help`를 입력하면 git add 명령어의 모든 옵션과 기능에 대한 자세한 정보를 얻을 수 있습니다. 또한, `git status`나 `git commit`과 같은 명령어의 사용법이 궁금할 때도 동일하게 `--help` 옵션을 붙여주면 됩니다.
이 도움말 기능은 Git을 처음 배우거나 명령어 옵션이 다양해서 복잡하게 느껴질 때 매우 유용합니다. 명령어의 기본 사용법부터 고급 기능까지 체계적으로 설명되어 있어, 명령어의 정확한 의미와 활용 방법을 익히는 데 큰 도움이 됩니다. 따라서 Git 명령어를 사용하다가 궁금한 점이 생기면, 외부 자료를 검색하기 전에 먼저 `--help` 옵션을 활용하는 습관을 들이는 것이 좋습니다. 이는 시간 절약은 물론, 명령어에 대한 깊이 있는 이해를 돕습니다.
공유하기
💬자주 묻는 질문
Git Add로 잘못 추가한 파일을 취소하는 방법은 무엇인가요?
Git이 파일을 구분하는 4가지 상태는 무엇인가요?
Git 명령어 사용법을 모를 때 어떻게 확인하나요?
원문 작성자









