Git 입문

una·2024년 9월 19일

Git

목록 보기
1/5
post-thumbnail

Git이란?

  • 리누즈 토발즈(Linus Torvalds)가 만든 분산 버전 관리 시스템(DVCS, Distributed Version Control Systems)으로, 소스코드를 효과적으로 관리하기 위해 개발됐다.

Git 저장소

1) 원격 저장소(Remote Repository)

  • GitHub 등 외부 서버에 설정된 Git 저장소
  • 기본 설정된 원격 저장소 주소에는 origin이라는 별명이 붙음

2) 로컬 저장소(Local Repository)

  • 작업자의 개발 환경(PC)에 설정된 Git 저장소

작업 트리(Work Tree)

  • 작업하고 있는 프로젝트 폴더

인덱스(Index)

  • 커밋을 실행하기 전 저장소와 작업 트리 사이에 존재하는 공간

커밋(Commit)

  • 파일 및 디렉토리에 대한 변경사항을 Git 인덱스에 기록(= stage)
  • 커밋 후 저장소에는 각 커밋을 구분할 수 있는 영문/숫자로 이루어진 40자리 고유 이름이 생성

푸시(Push)

  • 원격 저장소
  • 로컬 저장소의 변경 이력을 원격 저장소에 업로드

풀(Pull)

  • 원격 저장소의 변경 내용을 로컬 저장소에 적용(fetch + merge)

fetch

  • 원격 저장소의 데이터를 로컬 저장소에 가져와서 내용만 확인(병합X)

브랜치(Branch)

  • 독립적으로 어떤 작업을 진행하기 위한 개념
  • 각 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있음
  • 다른 브랜치와 Merge함으로써, 작업한 내용을 다시 새로운 하나의 브랜치로 모을 수 있음
  • (통합 브랜치: master / 토픽 브랜치)
  • 현재 작업 중인 브랜치
  • 특정 버전을 조회하기 위해서는 브랜치 이름이나 커밋 해시를 기억해야함
  • '~(틸드, 물결기호)' → HEAD 뒤에 붙여 몇 세대 앞의 커밋을 가리킴
  • '^(캐럿, 삽입기호)' → 브랜치 병합에서 원본이 여럿 있는 경우 몇 번째 원본인지 지정할 수 있음

stash

  • 파일의 변경 내용을 일시적으로 기록해두는 영역
  • 작업 트리와 인덱스 내에서 아직 커밋하지 않은 변경을 일시적으로 저장해 둘 수 있음
  • stash에 저장된 변경 내용을 나중에 다시 불러와 원래의 브랜치나 다른 브랜치에 커밋할 수 있음
  • (전환(checkout)된 브랜치에서 한 차례 변경이 있어 체크아웃에 실패할 경우 이용)

브랜치 통합

1) merge

  • 여러 개의 브랜치를 하나로 모을 수 있음
  • 변경 내용의 이력이 모두 그대로 남아 있기 때문에 이력이 복잡해짐

2) rebase

  • 이력은 단순해지지만, 원래의 커밋 이력이 변경됨
  • 정확한 이력을 남겨야 할 필요가 있을 경우에는 사용하면 안됨
profile
개미는 뚠뚠🌻

0개의 댓글