GitHub 기초

GitHub는 Git을 사용하는 프로젝트를 위한 웹 기반의 호스팅 서비스입니다. 전 세계 개발자들이 소스 코드를 공유하고 협업하는 데 가장 널리 사용되는 플랫폼입니다.

개요

Git은 분산 버전 관리 시스템 자체를 의미하지만, GitHub는 Git 저장소를 관리할 수 있는 클라우드 기반의 서비스입니다. GitHub를 통해 개발자들은 원격 저장소에 코드를 저장하고, 여러 개발자와 함께 코드를 수정하며, 프로젝트의 변경 이력을 효율적으로 추적하고 관리할 수 있습니다. 소스 코드 공개 여부에 따라 공개(Public) 및 비공개(Private) 저장소를 지원합니다.

참고

GitHub는 Git의 모든 기능을 사용하지만, Git 없이 GitHub만으로는 버전 관리를 할 수 없습니다. 로컬에서 Git으로 커밋한 내용을 GitHub에 올리는(push) 방식으로 사용합니다.

주요 기능

GitHub는 단순한 코드 저장소를 넘어 협업을 위한 다양한 기능을 제공합니다.

  • 저장소(Repository): 프로젝트의 모든 파일과 변경 이력을 저장하는 공간입니다.
  • 풀 리퀘스트(Pull Request): 자신의 작업 브랜치 내용을 메인 브랜치에 병합(Merge)해 달라고 요청하는 기능입니다. 코드 리뷰와 토론을 위해 사용됩니다.
  • 이슈(Issues): 버그, 기능 개선, 할 일 등을 기록하고 관리하는 트래킹 시스템입니다.
  • GitHub Actions: 빌드, 테스트, 배포 등 개발 워크플로우를 자동화하는 CI/CD(지속적 통합/배포) 기능입니다.

핵심 용어

GitHub에서 자주 사용되는 핵심 용어들입니다.

용어 설명
Branch 독립적인 작업 공간을 만드는 기능입니다. 새로운 기능 개발이나 버그 수정을 위해 사용합니다.
Fork 다른 사람의 저장소를 자신의 계정으로 통째로 복사하는 기능입니다. 원본 프로젝트에 기여할 때 주로 사용합니다.
Clone 원격 저장소의 내용을 로컬 컴퓨터로 복사하는 기능입니다.
Merge 다른 브랜치의 내용을 현재 브랜치에 통합하는 기능입니다.

기본 워크플로우

GitHub를 이용한 일반적인 협업 작업 순서는 다음과 같습니다.

CLI
# 1. 원격 저장소를 로컬로 복제
git clone <저장소 주소>

# 2. 새로운 기능 개발을 위해 브랜치 생성 및 이동
git checkout -b feature/new-feature

# 3. 코드 수정 후 커밋
git add .
git commit -m "feat: 새로운 기능 추가"

# 4. 로컬 변경 내용을 원격 저장소에 푸시
git push origin feature/new-feature

# 5. GitHub에서 풀 리퀘스트 생성 (웹 인터페이스)

주의사항 및 팁

  • README.md 파일을 통해 프로젝트를 소개하고 사용 방법을 명시하는 것이 좋습니다.
  • GitHub Issues를 활용하여 작업 진척도를 관리하면 프로젝트를 체계적으로 진행할 수 있습니다.
  • git pull --rebase를 사용하면 불필요한 병합 커밋(Merge Commit)을 줄여 커밋 이력을 깔끔하게 유지할 수 있습니다.
주의

GitHub에 중요한 개인 정보(비밀번호, API 키 등)가 포함된 파일을 절대 올리지 마세요. 실수로 올렸을 경우, 해당 파일 이력을 완전히 삭제해야 합니다.