Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

Git add 명령어 완벽 가이드: 스테이징 영역부터 커밋 준비까지

git add 명령어는 파일이나 폴더를 스테이징 영역(staging area)에 추가하는 명령입니다. 스테이징 영역에 있는 파일들은 다음 커밋(commit)에 포함될 변경 사항들입니다. git add는 저장소나 파일 자체를 수정하거나 다른 방식으로 영향을 주지 않습니다.


Git 버전 관리 시스템에는 일반적인 '저장' 기능이 없습니다. 대신 Git은 커밋(commit)이라는 과정을 사용합니다. 커밋이란 마지막 커밋 이후 파일에 적용된 모든 변경 사항을 하나의 기록으로 만드는 작업입니다.

이 과정은 여러 개의 명령줄 작업으로 이루어져 있습니다. 그중 첫 번째 단계가 바로 git add 명령어를 사용하는 것입니다. 이 명령어를 사용하면 파일을 스테이징 영역으로 옮겨서, 어떤 파일을 저장소에 커밋할지 선택할 수 있습니다.

이 글에서는 예제와 함께 git add 명령어를 사용해 커밋할 파일을 선택하는 방법을 알아봅니다. 글을 끝까지 읽으면 git add 명령어를 능숙하게 활용할 수 있게 될 것입니다.

Git에서 파일을 저장하는 방식

컴퓨터에서 파일을 저장하면 변경 내용이 로컬 머신에 그대로 기록됩니다. 예를 들어 Word 문서를 저장하면 컴퓨터는 새 버전의 문서를 즉시 저장합니다.

하지만 Git은 조금 다른 방식으로 변경 사항을 관리합니다. 프로젝트에서 파일을 수정하면 변경 내용은 우선 로컬 컴퓨터에만 저장됩니다. Git 저장소에 이 변경 사항이 반영되려면 반드시 커밋이라는 절차를 거쳐야 합니다. 전체 흐름은 다음과 같습니다:

  1. 컴퓨터에서 Git 저장소의 파일 또는 폴더를 수정합니다.
  2. git add를 사용해 변경 사항을 스테이징 영역에 추가합니다.
  3. git commit을 사용해 스테이징 영역의 변경 사항을 하나의 커밋으로 만듭니다.
  4. git push를 사용해 해당 커밋을 원격 저장소(메인 저장소)에 푸시합니다.

즉, 저장소에서 가져온 파일을 수정한 뒤에는 이러한 단계를 거쳐야 저장소 자체가 변경됩니다. 로컬 컴퓨터에는 새 버전의 파일이 저장되지만, 보통 별도 서버에 위치한 메인 저장소는 변하지 않습니다. 또한 업데이트된 파일을 커밋하기 전까지는 Git이 변경 이력을 추적하지 않습니다.

Git에서 파일을 저장하려면 git add와 git commit 두 명령어가 필요합니다. 이 글에서는 그 첫 번째 단계인 git add 명령어를 집중적으로 다룹니다.

git add 명령어란?

git add 명령어는 파일을 Git 스테이징 영역에 추가합니다. 스테이징 영역에는 최근에 변경한 파일들의 목록이 담기며, 다음 커밋을 실행할 때 저장소가 이 내용으로 갱신됩니다.

따라서 git add 명령어를 실행한다고 해서 Git 저장소의 작업 내용이 바로 바뀌지는 않습니다. 저장소에 실제로 변경이 적용되는 시점은 git commit 명령어를 실행했을 때입니다.

git add 명령어의 기본 문법은 다음과 같습니다:

git add fileName

여기서 지정하는 파일은 Git 저장소 안의 어떤 파일이나 폴더든 가능합니다.

예를 들어 README.md 파일을 메인 저장소에 커밋하기 위해 스테이징 영역에 추가하고 싶다면 다음과 같이 입력합니다:

git add README.md

이 명령어는 README.md 파일을 스테이징 영역에 추가합니다.

저장소에서 변경된 모든 파일과 폴더를 한 번에 추가할 수도 있습니다. 그 코드는 다음과 같습니다:

git add --all

이 명령어는 저장소의 파일과 폴더에 대해 우리가 만든 모든 변경 사항을 Git 스테이징 영역에 추가합니다.

파일을 스테이징 영역에 추가했다면, 이제 git commit 명령어로 변경 사항을 저장소에 커밋할 차례입니다. git commit 명령어에 대한 자세한 내용은 별도의 커밋 가이드에서 확인할 수 있습니다.

Git에서 모든 파일 추가하기

저장소의 모든 파일을 스테이징 영역에 추가하려면 git add -A 또는 git add . 명령어를 사용할 수 있습니다.

-A 플래그는 모든 파일을 추가하겠다는 의미이며, --all 옵션의 축약형입니다. 선호에 따라 --all을 그대로 사용해도 됩니다. 지금까지 만든 모든 변경 사항을 스테이징 영역에 추가해 보겠습니다:

git add -A

이제 스테이징 영역에는 파일에 대해 만든 모든 변경 사항이 담겨 있습니다.

git add . 명령어도 사용할 수 있습니다. 이 명령어는 현재 작업 중인 폴더에 있는 모든 파일을 스테이징 영역에 추가합니다.

git add . 명령어로 모든 파일을 추가하려면 프로젝트의 루트 폴더, 즉 모든 코드가 저장된 최상위 폴더에서 명령어를 실행해야 합니다.

git add .

이렇게 하면 저장소의 모든 파일이 스테이징 영역에 추가됩니다.

Git 스테이징 영역(Staging Area)이란?

이 글에서 계속 언급한 스테이징 영역은 Git 버전 관리 시스템만의 독특한 기능입니다. 스테이징 영역은 아직 저장되지 않은 코드 변경 사항과 프로젝트의 커밋 히스토리 사이에서 완충 지대(buffer) 역할을 합니다.

스테이징 영역은 매우 유용한 기능입니다. 저장소 자체를 실제로 변경하지 않으면서도 파일을 수정해 둘 수 있게 해주며, 나중에 원하는 시점에 로컬에서 편집한 내용을 커밋할 수 있습니다.

대표적인 활용 사례는 여러 개의 파일을 동시에 수정해야 할 때입니다. 이런 경우 변경 사항을 여러 개의 커밋으로 나누면 좋습니다. 한 번에 너무 많은 변경 사항을 저장소에 푸시하는 것은 일반적으로 좋지 않은 습관인데, 커밋 사이의 변경 내용을 추적하기 어려워지기 때문입니다.

git add를 활용하면 특정 파일만 골라서 커밋에 포함시키는 선택적인 작업이 가능합니다.

결국 버전 관리의 핵심은 추적하기 쉬운 커밋을 만드는 것입니다. 커밋 단위가 명확하면, 개발자가 문제가 발생했을 때 원인이 된 지점을 빠르게 찾아내는 데 큰 도움이 됩니다.

마치며

git add 명령어는 Git 저장소에 변경 사항을 저장하는 일련의 작업 중 첫 번째 단계입니다. 이 명령어는 변경 사항을 스테이징 영역으로 보내며, 이후 git commit을 통해 해당 변경 사항을 메인 저장소에 커밋할 수 있습니다.

이 글에서는 예제와 함께 git add 명령어를 사용해 파일과 폴더를 Git 스테이징 영역에 추가하는 방법을 살펴보았습니다. 이제 여러분도 전문 개발자처럼 git add 명령어를 활용할 준비가 되었습니다!

Git에 대해 더 알고 싶다면 Git 학습 가이드도 함께 참고해 보세요.