Git 최종 수정일 2026-06-19 02:16 조회수 4
대시보드

Git

기본 정보

  • 이름: Git
  • 분류: 분산 버전 관리 시스템(DVCS)
  • 영문명: Distributed Version Control System
  • 개발자: Linus Torvalds
  • 최초 공개: 2005년
  • 주요 용도: 소스 코드 버전 관리 및 협업
  • 관련 주제: #Git #VersionControl #DevOps #GitHub #개발도구

개요

Git은 소스 코드의 변경 이력을 관리하고 여러 개발자가 동시에 협업할 수 있도록 지원하는 분산 버전 관리 시스템(DVCS) 이다.

프로젝트의 변경 내용을 기록하고, 이전 버전으로 복원하거나 여러 기능을 동시에 개발할 수 있으며, 현재 대부분의 소프트웨어 개발 프로젝트에서 표준으로 사용된다.

GitHub, GitLab, Bitbucket 등의 원격 저장소와 함께 사용하는 경우가 많다.


Git 구조

Working Directory

↓

Staging Area

↓

Local Repository

↓

Remote Repository

동작 과정

파일 수정

↓

git add

↓

Staging Area

↓

git commit

↓

Local Repository

↓

git push

↓

GitHub

주요 특징

  • 버전 관리
  • 협업 지원
  • 분산 저장소
  • 브랜치 관리
  • 병합(Merge)
  • 변경 이력 추적
  • 이전 버전 복구 가능

설치 확인

git --version

저장소 생성

git init

현재 폴더를 Git 저장소로 초기화한다.


원격 저장소 복제

git clone

https://github.com/user/project.git

상태 확인

git status

현재 변경 사항을 확인할 수 있다.


파일 추가

git add .

모든 변경 파일을 스테이징 영역에 추가한다.

특정 파일만 추가

git add index.php

커밋

git commit -m

"회원가입 기능 추가"

변경 내용을 로컬 저장소에 기록한다.


원격 저장소 업로드

git push origin main

최신 코드 가져오기

git pull origin main

원격 변경 사항만 가져오기

git fetch

병합 없이 원격 변경 사항만 다운로드한다.


로그 확인

git log

간략하게 보기

git log --oneline

브랜치 생성

git branch feature/login

브랜치 목록

git branch

브랜치 이동

git checkout feature/login

최신 방식

git switch feature/login

브랜치 생성 및 이동

git switch -c feature/login

병합(Merge)

git merge feature/login

기능 브랜치를 현재 브랜치에 병합한다.


브랜치 삭제

git branch -d feature/login

변경 내용 확인

git diff

커밋 간 비교

git diff HEAD~1 HEAD

되돌리기(Reset)

git reset --hard HEAD

모든 변경 사항을 마지막 커밋 상태로 되돌린다.

⚠️ 주의: 작업 내용이 삭제될 수 있다.


특정 커밋 취소(Revert)

git revert

<commit-id>

기존 이력을 유지하면서 변경 내용을 되돌린다.


.gitignore

Git이 추적하지 않을 파일을 지정한다.

vendor/

node_modules/

.env

*.log

Git 작업 흐름

Feature Branch

↓

Commit

↓

Push

↓

Pull Request

↓

Code Review

↓

Merge

↓

Deploy

Git과 GitHub 차이

GitGitHub
버전 관리 시스템Git 저장소 호스팅 서비스
로컬에서도 사용 가능클라우드 기반
명령어 중심웹 UI 제공
소스 관리협업 및 코드 공유

대표 브랜치 전략

Git Flow

main

↓

develop

↓

feature

↓

release

↓

hotfix

대규모 프로젝트에서 많이 사용된다.


GitHub Flow

main

↓

feature branch

↓

Pull Request

↓

Merge

소규모 및 애자일 프로젝트에서 많이 사용된다.


대표 활용 분야

  • 웹 개발
  • 모바일 앱 개발
  • 게임 개발
  • AI 프로젝트
  • DevOps
  • 오픈소스
  • ERP
  • SaaS

장점

  • 변경 이력 관리
  • 협업 효율 향상
  • 이전 버전 복구 가능
  • 브랜치 기능 제공
  • 무료 사용 가능
  • 다양한 플랫폼 지원

단점

  • 초보자에게 명령어가 어려울 수 있음
  • Merge Conflict 발생 가능
  • 브랜치 전략 이해 필요
  • 잘못된 Reset 사용 시 데이터 손실 위험

실무 메모

실무에서는 다음과 같은 방식이 권장된다.

  • main 브랜치는 항상 안정 상태 유지
  • 기능별 브랜치(feature/*) 생성
  • 커밋 메시지는 명확하게 작성
  • .gitignore 적극 활용
  • Pull 전에 git fetch 확인
  • 작은 단위로 자주 Commit
  • Pull Request 후 코드 리뷰 진행
  • 민감 정보(API Key, 비밀번호)는 Commit 금지
  • Tag를 활용한 버전 관리
  • 정기적으로 원격 저장소 동기화

Git와 함께 사용하는 기술


대표 GUI 도구

  • GitHub Desktop
  • SourceTree
  • Fork
  • GitKraken
  • VS Code Git

관련 문서


출처

  • Git 공식 홈페이지
  • Git 공식 문서
  • Pro Git Book