Git Init: Git 저장소를 초기화하고 설정하는 방법

파일을 실수로 삭제하거나 코드를 덮어쓴 적이 있나요? 복구할 방법이 없을 때는 버전 관리가 없으면 이러한 오류가 치명적일 수 있습니다. 이때 git init이 필요합니다. 이 명령은 프로젝트 폴더를 Git 저장소로 변환하여 모든 변경 사항을 추적하고 복구할 수 있도록 합니다.

이 튜토리얼에서는 Git 설정 방법을 안내하고 개인적인 팁을 공유하여 강력한 워크플로우를 처음부터 만들 수 있도록 도와드리겠습니다.

Git Init이란?

git init 명령은 버전 관리 여정을 시작합니다. 이 명령을 실행하면 Git은 프로젝트 디렉토리 내에 숨겨진 .git 폴더를 생성하여 구성 데이터, 커밋 기록 및 변경 사항을 추적하는 데 필요한 모든 메타데이터를 저장합니다.

모든 수정 사항이 기록된 상태에서는 프로젝트의 완전한 이력이 항상 한 번의 명령만으로 사용 가능하므로 자신 있게 브랜치를 만들고 병합하며 협업할 수 있습니다.

저자 이미지

Git Init 사용 방법

고급 주제에 대해 알아보기 전에 실제로 git init을 어떻게 사용하는지 이해하는 것이 중요합니다.

git init의 기본 사용법

다음 단계를 따라 새로운 Git 저장소를 처음부터 만드세요:

  • 터미널을 엽니다:선호하는 명령줄 인터페이스를 실행합니다.
  • 프로젝트 디렉토리로 이동합니다:
cd /path/to/your/project

이 명령어는 현재 폴더를 추적하고자 하는 폴더로 변경합니다.

  • 저장소를 초기화합니다: 
git init

이 명령을 실행하면 숨겨진 .git 폴더가 생성됩니다. 이 폴더는 Git의 모든 추적 정보를 저장합니다.

  • 저장소 상태를 확인합니다:
git status

이 시점에서 Git은 설정되어 있지만 어떠한 파일도 추적하고 있지 않습니다.

기존 프로젝트로 저장소를 초기화하기

아직 버전 관리되지 않은 프로젝트의 경우 다음과 같이 Git을 초기화하고 변경 사항을 추적할 수 있습니다:

  • 프로젝트 디렉토리로 이동하십시오:
cd /path/to/your/project
  • 프로젝트를 Git 저장소로 변환하십시오:
git init

위 명령은 Git 추적을 가능하게 하는 숨겨진 .git 폴더를 생성합니다.

  • 파일을 스테이징하십시오:git init은 파일을 자동으로 추적하지 않으므로 다음과 같이 추가하십시오:
git add .
  • 파일을 커밋하세요: 다음을 실행하여 초기 스냅샷을 저장하세요:
git commit -m "Initial commit"

이 프로세스는 관리되지 않은 프로젝트를 완전한 버전 이력이 있는 프로젝트로 변환시킵니다. 이제 새로운 개발과 협업을 준비할 수 있습니다.

Git 구성하기 (필요한 경우)

“작성자 신원을 알 수 없음” 오류가 발생하면 Git에서 누구인지 알 수 없습니다. 이를 해결하려면 사용자 신원을 구성하세요:

  • Git 사용자 정보 설정:
git config --global user.email "[email protected]" git config --global user.name "Your Name"

--global을 사용하면 이러한 설정이 기기의 모든 저장소에 적용됩니다. 이를 생략하면 현재 저장소에 대해서만 신원이 설정됩니다.

  • 구성을 확인하세요:
git config --global user.email git config --global user.name
  • 커밋을 다시 시도하세요:
git commit -m "First Commit"

Git을 처음 사용할 때 이 오류를 만났습니다. 제 아이덴티티를 설정하면 문제가 해결됩니다.

최초의 Git 커밋은 PowerShell에서 성공적으로 실행되었습니다.

원격 저장소에 연결하기

로컬로 Git 저장소를 초기화한 후에는 보관하거나 다른 사람들과 협업하기 위해 원격 저장소(예: GitHub, GitLab, Bitbucket)에 연결할 것입니다.

  • 원격 저장소 추가:로컬 저장소를 원격 저장소에 연결하려면 다음을 사용하십시오:
git remote add origin <repository-url>

<repository-url>을(를) 원격 저장소의 URL로 바꿉니다. origin은 원격 저장소의 기본 별칭이지만 원하는 이름을 사용할 수 있습니다.

  • 연결을 확인할 수 있습니다:
git remote -v
  • 변경 사항을 원격 저장소로 푸시하십시오:
# 첫 번째 커밋을 푸시하고 원격 브랜치를 추적합니다 git push -u origin $(git branch --show-current) # 'main' 또는 'master'에 대해 작동합니다

위의 명령은 현재 브랜치를 푸시하고 해당 브랜치를 원격 브랜치를 추적하도록 설정합니다.

만약 $(git branch --show-current)를 지원하지 않는 구 버전의 Git를 사용 중이라면 다음을 사용하세요:

git push -u origin main # 또는 기본 브랜치에 따라 'master'

프로젝트를 계속 진행하면 팀과 협업할 때 다른 브랜치에서 변경 사항을 병합해야 할 필요가 있습니다. 이 Git 병합 튜토리얼을 통해 효과적으로 병합하는 방법을 배우세요.

인증 및 액세스

GitHub, GitLab 또는 Bitbucket에 푸시하는 경우 인증이 필요할 수 있습니다. 설정에 따라 다음을 수행할 수 있습니다:

  • SSH 키 대신 HTTPS 인증을 사용하세요 (보안을 위해 권장됨):
git remote set-url origin [email protected]:your-username/your-repo.git
  • HTTPS를 사용할 때 비밀번호 대신 개인 액세스 토큰 (PAT)을 사용하세요. GitHub의 경우, 비밀번호를 토큰으로 대체하세요:
git push https://[email protected]/your-repo.git

원격 저장소에 연결하는 것은 나에게 전환점이었습니다. 로컬 작업이 안전하게 백업되어 협업에 준비되어 있는지 확인할 수 있었기 때문입니다. 또한 버전 관리에서 자신감을 가질 수 있었으며, 로컬 기기에 문제가 생겨도 내 기록이 보존된다는 것을 알 수 있었습니다.

고급 옵션과 Git 초기화

자신의 Git 설정을 맞춤화하고자 하는 분들을 위해, 고급 옵션은 추가적인 유연성을 제공합니다.

베어 리포지토리 초기화

개발자들이 변경 사항을 푸시하지만 파일을 직접 수정하지 않는 Git 서버를 설정하는 경우, 베어 리포지토리가 필요합니다. 베어 리포지토리는 작업 디렉토리를 생략하고 버전 관리 데이터만 포함합니다. 일반적으로 원격 리포지토리에 사용됩니다:

git init --bare <repository-name>

베어 리포지토리는 인프라와 애플리케이션 배포가 Git을 통해 관리되는 GitOps 워크플로우에서 자주 사용됩니다. GitOps가 소프트웨어 제공을 어떻게 자동화하고 간소화하는지 배우고 싶다면, 이 GitOps 가이드를 확인해 보세요.

특정 구성으로 초기화

시작부터 사용자 정의 Git 후크나 구성 파일이 필요하다면 사용자 정의 템플릿으로 초기화하세요:

git init --template=<template-directory>

필수 후크를 자동으로 로드하기 위해 사용자 정의 템플릿을 한 번 사용했었고, 이는 팀의 배포 프로세스를 간소화했습니다.

Git Init 사용의 모범 사례

올바른 발걸음으로 Git을 시작하면 훗날 시간과 문제를 절약할 수 있습니다.

프로젝트 구조 구성

git init을 실행하기 전에 파일을 논리적인 폴더 구조로 구성하세요—코드, 문서 및 에셋을 분리합니다.

내가 상속받은 한 프로젝트에서는 여러 하위 프로젝트의 파일들이 뒤섞여 병합 충돌과 혼란을 초래했습니다. 모든 것을 명확하게 정의된 폴더로 재조직하고, 저장소를 재초기화하며, 적절한 .gitignore를 설정함으로써 작업 흐름이 극적으로 개선되었습니다.

초기 단계에서 .gitignore 파일 추가하기

저장소를 초기화한 직후, 불필요한 파일이 추적되는 것을 방지하기 위해 .gitignore 파일을 생성하세요:

touch .gitignore

그런 다음, 다음과 같은 규칙을 포함하도록 편집하세요:

# 의존성 폴더 및 로그 파일 무시하기 node_modules/ *.log .DS_Store # macOS 시스템 파일 Thumbs.db # Windows 시스템 파일

이 단계는 나를 부피가 큰 커밋 기록과 잠재적인 향후 충돌로부터 구해주었습니다.

.gitignore 파일 구성에 대한 자세한 안내서는 gitignore 튜토리얼을 확인하십시오.

자주 커밋하기

작고 빈번한 커밋을 하면 명확한 메시지와 함께 자세한 프로젝트 이력을 구축하고 디버깅 및 협업을 간단하게 만들 수 있습니다.

일반적인 Git Init 문제 해결

적절한 계획이 있더라도 문제가 발생할 수 있습니다. 일반적인 문제와 해결책을 살펴보겠습니다.

잘못된 디렉토리에서 초기화한 경우

문제: 잘못된 폴더에서 git init를 실행하여 원치 않는 Git 저장소가 생겼습니다.

해결책:  

  • Git 저장소 제거:
rm -rf .git

> 경고: 해당 저장소의 모든 버전 기록이 삭제됩니다. 이 명령을 실행하기 전에 올바른 폴더에 있는지 확인하십시오!

그런 다음 올바른 디렉토리로 이동하여 git init을 다시 실행하십시오.

저는 몇 번이나 이 실수를 해 왔기 때문에 작업 디렉토리를 두 번 확인하여 이를 피하십시오.

추적되지 않는 파일 다루기

문제: git init을 실행한 후에 Git이 파일을 추적하지 않습니다. git status를 실행하면 다음이 표시됩니다:

No commits yet Untracked files: (use "git add <file>..." to include in what will be committed)

해결책: 

  • 파일이 정말 추적되지 않았는지 확인하십시오:
git status

만약 파일이 추적되지 않는 파일로 나타나면, Git은 그 파일들을 볼 수 있지만 아직 추적하지 않는 것입니다.

  • 그런 다음, 필요한 파일을 스테이징하십시오:
git add <file-name>
  • 파일을 커밋하십시오:
git commit -m "Initial commit"

정기적인 상태 확인은 중요한 사항을 놓치지 않도록 합니다.

git status가 파일을 표시하지 않는 경우, 프로젝트에 중요한 파일을 제외시킬 수 있는 .gitignore 파일이 있는지 확인하십시오.

결론

git init을 마스터하는 것은 협업과 효율적인 프로젝트 관리를 가능하게 하는 신뢰할 수 있는 버전 관리 시스템을 구축하는 중요한 첫걸음입니다. 이 안내서를 따라 리포지토리의 초기화 및 구성부터 일반적인 문제 해결에 이르기까지 부드럽고 효율적인 워크플로우를 설정하십시오.

작게 시작하세요—git init을 사용하여 테스트 프로젝트를 초기화하고 스테이징, 커밋, 변경 내용 푸시 등을 실험해보세요. Git의 기본 원칙을 빨리 마스터하면 워크플로우가 더욱 효율적일 것입니다! 그리고 Git 기술을 더 심화시키기를 바라신다면, 이 DataCamp 코스들을 확인해보세요:

  • 중급 Git – 고급 브랜치, 병합 및 충돌 해결 기술을 향상시킵니다.
  • GitHub 기초 – 협업 프로젝트에 Git을 원활하게 통합하는 방법을 배웁니다.

코드 작성을 즐기세요 – 신뢰할 수 있고 혁신적인 프로젝트를 Git을 사용하여 만들어봅시다!

Source:
https://www.datacamp.com/tutorial/git-init