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 명령어 사용법을 모를 때 어떻게 확인하나요?
원문 작성자










