정지용
기술스택 목록
도구

Git

프로젝트 3에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

파일 변경 이력을 분산 저장소로 관리하며 브랜치와 협업을 지원하는 버전 관리 도구

Git은 소스 코드나 설정 파일의 변경 이력을 시간순으로 기록하고 되돌릴 수 있게 해주는 분산 버전 관리 시스템이다. 중앙 서버 없이도 각자의 로컬 저장소가 전체 이력을 가지므로 오프라인 작업과 빠른 커밋, 브랜치 생성이 가능하다. 여러 사람이 동시에 같은 코드베이스를 수정해도 변경 내역을 병합하고 충돌을 관리할 수 있도록 설계되었으며, 특정 시점의 상태를 태그나 커밋 해시로 정확히 재현하는 용도로도 널리 쓰인다.

이럴 때 사용합니다

  • 코드나 설정의 변경 이력을 추적하고 언제든 이전 상태로 되돌리고 싶을 때
  • 여러 프로젝트나 환경에서 동일한 설정을 버전 태그로 관리하고 배포하고 싶을 때
  • 특정 커밋 해시를 고정해 실행 환경을 동일하게 재현하고 싶을 때
  • 여러 사람이 동시에 협업하며 브랜치 단위로 작업을 분리하고 병합해야 할 때

핵심 개념

commit
특정 시점의 파일 상태를 스냅샷으로 저장하는 단위로, 고유한 해시값으로 식별된다.
branch
독립된 작업 흐름을 만들기 위한 커밋 포인터로, 원본 코드에 영향을 주지 않고 변경을 실험할 수 있게 한다.
tag
특정 커밋에 고정된 이름을 붙여 릴리스나 배포 시점 같은 중요한 상태를 표시하는 데 쓰인다.
remote
로컬 저장소와 동기화되는 원격 저장소로, push/pull을 통해 변경 내역을 주고받는다.
submodule
다른 Git 저장소를 특정 커밋 기준으로 현재 저장소 안에 포함시켜, 외부 의존성을 버전 고정한 채 관리하는 기능이다.
merge/conflict
서로 다른 브랜치의 변경 사항을 하나로 합치는 과정으로, 같은 부분이 다르게 수정되면 충돌이 발생해 수동 해결이 필요하다.

기본 Git 워크플로우

설정 파일을 커밋하고 태그로 버전을 표시한 뒤, 특정 커밋 해시로 되돌아가 동일한 상태를 재현하는 흐름이다.

Shell
# 저장소 초기화 및 원격 연결
git init
git remote add origin https://example.com/repo.git

# 변경 사항 커밋
git add config.yaml
git commit -m "설정 초기화"

# 특정 버전에 태그 부여
git tag v1.0.0
git push origin main --tags

# 특정 커밋 해시로 환경 재현
git checkout 3a1f9c2

처음 쓸 때 흔한 함정

  • 커밋 메시지 없이 큰 변경을 한 번에 몰아넣으면 이력 추적과 롤백이 어려워진다
  • submodule은 자동으로 최신화되지 않아, 별도로 업데이트 명령을 실행하지 않으면 옛 커밋을 계속 참조한다
  • reset이나 checkout 같은 명령은 커밋되지 않은 변경 사항을 되돌릴 수 없이 삭제할 수 있다

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.