본문 바로가기

git add . vs git add *: 파일 스테이징 명령어의 차이점

_Big 2024. 12. 3.

Git을 사용할 때, 특히 파일을 스테이징하는 과정에서 자주 사용하는 두 명령어가 있습니다: git add .git add *. 이 두 명령어는 비슷해 보이지만 실제로는 몇 가지 중요한 차이점이 있습니다. 이러한 차이점을 이해하면 효율적인 커밋 관리와 실수 방지에 큰 도움이 됩니다. 이 글에서는 각 명령어의 동작 방식과 사용 상황에 대해 자세히 살펴보겠습니다.

 

git add . vs git add *: 파일 스테이징 명령어의 차이점

 

git add .의 동작 원리

  • 모든 변경 사항을 스테이징
    • git add .현재 디렉토리와 그 하위 디렉토리의 모든 변경 사항을 스테이징합니다.
    • 수정된 파일, 새로 추가된 파일, 삭제된 파일을 모두 포함해 스테이징할 수 있습니다.
    • 대규모 프로젝트에서 여러 폴더에 걸쳐 발생한 변경 사항을 한 번에 처리할 수 있어 시간을 절약할 수 있습니다.
  • 하위 디렉토리까지 포함
    • 현재 디렉토리뿐만 아니라 그 하위 디렉토리의 파일들까지 자동으로 포함됩니다.
  • 사용 예시
    • 프로젝트 전체에 걸쳐 많은 파일이 수정되었거나 삭제된 경우, git add .를 사용해 모든 변경 사항을 스테이징하는 것이 효율적입니다.
    • 특히 대규모 커밋을 만들 때 유용합니다.
  • 주의사항
    • .gitignore 파일에 명시된 파일들은 스테이징되지 않습니다.
    • 삭제된 파일도 자동으로 스테이징되므로, 실수로 파일을 삭제한 경우 이 명령어를 사용할 때 주의해야 합니다.



git add *의 동작 원리

  • 현재 디렉토리의 파일만 스테이징
    • git add *현재 디렉토리의 파일들만 스테이징합니다.
    • 하위 디렉토리의 파일은 포함되지 않으며, 수정된 파일과 새로 추가된 파일만 스테이징됩니다.
    • 삭제된 파일은 별도의 명령어(git rm)로 처리해야 합니다.
  • 와일드카드의 특성
    • *는 Unix 쉘에서 와일드카드로 사용되며, 현재 디렉토리의 모든 파일을 의미합니다.
    • 하위 디렉토리의 파일은 포함하지 않으며, 숨김 파일(이름이 .으로 시작되는 파일)은 자동으로 스테이징되지 않습니다.
    • 숨김 파일을 포함하려면 git add . 또는 git add .*를 사용해야 합니다.
  • 사용 예시
    • 특정 모듈에서만 작업 중이거나 현재 디렉토리의 파일들만 변경한 경우에 사용하면 효과적입니다.
    • 특히 하위 디렉토리의 변경 사항을 제외하고 작업하고 싶을 때 유용합니다.
  • 주의사항
    • 하위 디렉토리의 파일들을 포함하지 않기 때문에 복잡한 프로젝트 구조에서 변경 사항을 일부 놓칠 수 있습니다.
    • 삭제된 파일은 자동으로 스테이징되지 않으므로, 삭제된 파일을 반영하려면 git rm을 함께 사용해야 합니다.



요약 비교

  • `git add .`:
    • 전체 프로젝트의 모든 변경 사항(하위 디렉토리 포함)을 한 번에 스테이징합니다.
    • 수정된 파일, 새로 추가된 파일, 삭제된 파일 모두 포함됩니다.
    • 대규모 변경 작업 시 편리합니다.
  • `git add *`:
    • 현재 디렉토리의 파일만 스테이징하며, 하위 디렉토리는 포함하지 않습니다.
    • 삭제된 파일은 스테이징되지 않습니다.
    • 특정 디렉토리에서 국소적인 변경이 있을 때 적합합니다.



결론

git add .git add *는 비슷하지만, 프로젝트의 구조와 현재 작업 상황에 따라 적절히 선택하여 사용해야 합니다. 전체 변경 사항을 빠르게 반영하려면 git add .가 적합하고, 특정 디렉토리의 파일들만 국소적으로 스테이징하고 싶다면 git add *가 더 효율적일 수 있습니다. 예를 들어, 모든 디렉토리 구조가 단순한 프로젝트에서는 git add *가 더 간편하게 사용할 수 있습니다. 각 명령어의 특성을 이해하고 상황에 맞게 사용하는 것이 중요합니다.

 

댓글