1-3. Git 기본 명령어: 저장소 생성 및 초기화

1. Git 저장소의 시작: git init

Git을 사용한 버전 관리는 프로젝트의 생명력을 불어넣는 마법과 같습니다. 변경 사항을 추적하고, 이전 상태로 돌아가며, 여러 사람이 함께 작업할 수 있도록 돕습니다. 이 마법의 주문, 즉 Git의 핵심 명령 중 하나가 바로 git init입니다. 이 명령은 현재 디렉토리를 Git 저장소로 만들고, Git의 버전 관리 시스템을 활용할 수 있도록 초기화합니다. 마치 백지 상태의 캔버스에 첫 획을 긋는 것과 같습니다.

Git은 분산 버전 관리 시스템입니다. 이는 각 개발자가 자신의 로컬 환경에서 전체 프로젝트의 복사본을 가지고 작업할 수 있음을 의미합니다. git init은 이러한 분산 환경의 기반을 마련합니다.

1) Git 저장소란 무엇인가?

Git 저장소는 프로젝트의 모든 파일, 변경 이력, 그리고 Git이 관리하는 메타데이터를 포함하는 특별한 디렉토리입니다. 이 저장소는 프로젝트의 전체 역사를 담고 있으며, 언제든지 특정 시점으로 되돌아갈 수 있도록 합니다.

Git 저장소는 크게 두 부분으로 나눌 수 있습니다.

  • 작업 디렉토리(Working Directory): 실제로 파일을 수정하고 작업하는 곳입니다.
  • .git 디렉토리: Git이 내부적으로 사용하는 모든 정보가 저장되는 곳입니다. 이 디렉토리는 숨겨져 있으며, Git의 핵심 기능이 작동하는 곳입니다.

git init 명령어를 실행하면 이 .git 디렉토리가 생성되고, 이 디렉토리가 Git의 모든 기능을 제어합니다.

2. git init 명령어 자세히 살펴보기

git init 명령어는 매우 간단하지만, 그 효과는 강력합니다. 명령어를 실행하는 순간, 현재 디렉토리가 Git 저장소로 변환됩니다.

1) 명령어 실행 방법

터미널(또는 명령 프롬프트)을 열고, Git 저장소로 만들려는 프로젝트 디렉토리로 이동한 후 다음 명령어를 실행합니다.

git init

이 명령을 실행하면, 현재 디렉토리에 .git이라는 숨겨진 디렉토리가 생성됩니다.

2) .git 디렉토리 내부 구조

.git 디렉토리는 Git의 핵심 데이터를 저장하는 곳입니다. 이 디렉토리 안에는 다음과 같은 하위 디렉토리와 파일들이 있습니다.

  • HEAD: 현재 브랜치를 가리키는 파일입니다.
  • config: 저장소의 설정을 저장합니다.
  • objects: Git 객체(파일 내용, 커밋 정보 등)를 저장합니다.
  • refs: 브랜치, 태그 등을 가리키는 포인터를 저장합니다.
  • index: 스테이징 영역에 대한 정보를 저장합니다.

이러한 파일과 디렉토리는 Git이 버전 관리 작업을 수행하는 데 필요한 모든 정보를 담고 있습니다.

.git 디렉토리 내부 구조 설명 뒤

3. git init의 동작 원리: 숨겨진 마법

git init 명령어가 실행되면, Git은 다음과 같은 작업을 수행합니다.

  • .git 디렉토리 생성: 프로젝트 루트 디렉토리에 .git 디렉토리를 생성합니다. 이 디렉토리는 Git이 버전 관리 정보를 저장하는 핵심 공간입니다.
  • 초기 설정 파일 생성: config 파일을 생성하여 저장소의 기본 설정을 구성합니다. 사용자 정보(이름, 이메일) 및 기타 설정을 여기서 관리할 수 있습니다.
  • HEAD 포인터 초기화: HEAD 파일을 생성하고, 현재 브랜치(보통 master 또는 main)를 가리키도록 설정합니다. HEAD는 현재 작업 중인 브랜치를 나타냅니다.
  • 기타 초기 파일 및 디렉토리 생성: objects, refs, index 등 Git의 핵심 기능을 위한 디렉토리와 파일을 생성합니다.

이러한 과정을 통해 현재 디렉토리는 Git 저장소로 초기화되고, Git 명령어를 사용하여 버전 관리를 시작할 수 있습니다.

4. git init 사용 시나리오

git init 명령어는 프로젝트를 시작할 때뿐만 아니라, 기존 프로젝트를 Git으로 관리하고 싶을 때도 사용됩니다.

1) 새로운 프로젝트 시작

새로운 프로젝트를 시작할 때, 먼저 프로젝트 디렉토리를 생성하고 해당 디렉토리에서 git init 명령어를 실행합니다.

mkdir my-project
cd my-project
git init

이제 my-project 디렉토리는 Git 저장소로 초기화되었으며, 파일 추가, 변경, 커밋 등 Git의 모든 기능을 사용할 수 있습니다.

2) 기존 프로젝트에 Git 적용

기존에 Git 없이 작업하던 프로젝트가 있다면, 해당 프로젝트 디렉토리로 이동하여 git init 명령어를 실행하면 됩니다.

cd existing-project
git init

이렇게 하면 기존 프로젝트를 Git으로 관리할 수 있게 됩니다. 이 경우, Git은 기존 파일들을 추적하기 시작하며, 변경 사항을 커밋할 수 있습니다.

5. git init 이후의 작업 흐름

git init으로 Git 저장소를 초기화한 후에는 다음과 같은 단계로 작업을 진행합니다.

  1. 파일 추가: git add 명령어를 사용하여 추적할 파일을 스테이징 영역에 추가합니다.
  2. 변경 사항 커밋: git commit 명령어를 사용하여 스테이징된 변경 사항을 저장소에 커밋합니다. 각 커밋은 프로젝트의 특정 시점을 나타냅니다.
  3. 브랜치 관리: git branch, git checkout, git merge 등의 명령어를 사용하여 브랜치를 생성하고, 병합하며, 프로젝트의 다양한 버전을 관리합니다.
  4. 원격 저장소 연동: git remote 명령어를 사용하여 원격 저장소(예: GitHub, GitLab, Bitbucket)를 연결하고, git push, git pull 명령어를 사용하여 코드를 공유하고 협업합니다.

이러한 작업 흐름을 통해 프로젝트의 버전 관리를 효율적으로 수행할 수 있습니다.

6. 주의사항과 팁

1) .git 디렉토리 삭제하지 않기

.git 디렉토리는 Git 저장소의 핵심입니다. 실수로 이 디렉토리를 삭제하면, Git을 사용한 버전 관리 기록이 모두 사라지므로 주의해야 합니다.

2) 숨겨진 파일 및 디렉토리 보기

.git 디렉토리는 숨겨져 있으므로, 운영체제의 설정에 따라 보이지 않을 수 있습니다. 숨겨진 파일 및 디렉토리를 표시하도록 설정하여 .git 디렉토리를 확인할 수 있습니다.

3) 저장소 초기화 여러 번 하지 않기

이미 Git 저장소로 초기화된 디렉토리에 다시 git init 명령어를 실행해도 큰 문제는 없지만, 불필요한 작업입니다. 이미 Git 저장소인 경우, 다시 실행해도 기존의 .git 디렉토리가 유지됩니다.

7. 결론

git init 명령어는 Git을 시작하는 첫 번째 단계이며, Git을 사용한 버전 관리의 핵심입니다. 이 명령어를 통해 프로젝트 디렉토리를 Git 저장소로 초기화하고, 변경 사항을 추적하고 관리할 수 있습니다. git init의 원리를 이해하고, 실제 프로젝트에 적용하여 Git의 강력한 기능을 활용해 보세요.

비슷한 글 추천

Comments (0)

No comments yet. Be the first to comment!