Git이란??


프로젝트 할 때 많이 사용하는 Git

많이 들어는 봤는데 개념이 궁금하신 분들을 위해서 작성했습니다 :)

Git

  • 소스코드를 효과적으로 관리하기 위해 개발된 ‘분산형 버전 관리 시스템’
  • 소스 코드 변경 이력을 쉽게 확인 가능, 특정 시점에 저장된 버전과 비교하거나 특정 시점으로 되돌아갈 수도 있음

Git Repository

  • 파일이나 폴더를 저장해 두는 곳
  • 파일이 변경 이력 별로 구분되어서 저장됨
  • 종류
    • 원격 저장소(Remote Ropository)
      • 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소
    • 로컬 저장소(Local Repository)
      • 내 PC에 파일이 저장되는 개인 전용 저장소
  • 로컬 저장소 만드는 방법
    • 새로운 저장소 생성
    • 만들어져 있는 원격 저장소를 로컬 저장소로 복사

Commit

  • 파일 및 폴더의 추가/변경 사항을 저장소에 기록하는 것
  • Commit를 하면 이전 커밋 상태~현재 상태까지의 변경 이력이 기록
  • 버그 수정, 기능 추가 등 특별한 의미가 있는 업데이트를 작업 별로 구분해서 각각 커밋하는 것이 베스트

작업 트리(Work tree)와 인덱스(Index)

  • 작업 트리(Work Tree): 우리가 흔히 말하는 폴더
  • 인덱스(Index): 커밋을 실행하기 전의 저장소와 작업 트리 사이에 존재하는 공간
  • 인덱스 등록 or 스테이징(stage): 파일을 기록

푸시(Push)하기

  • 웹 상의 원격 저장소로 변경된 파일을 업로드 하는 것
  • push 실행하면 원격 저장소에 내 변경 이력이 업로드, 원격 저장소와 로컬 저장소가 동일한 상태가 됨

클론(Clone)하기

  • 변경 이력이 적용된 원격 저장소가 있으면, 그걸 웹에서 통째로 복제해와 내 PC에서 직접 작업할 수 있음
  • 변경 이력도 함께 로컬 저장소에 복제되어 오므로, 원래 원격 저장소와 똑같이 이력을 참조하고 커밋을 진행할 수 있음

풀(Pull)하기

  • 원격 저장소에 최신 변경 이력을 다운로드하여 내 로컬 저장소에 그 내용을 적용

병경 이력 병합(Merge)하기

  • 내가 끌어온 저장소가 최신 버전이 아닌 경우, 즉 내가 pull을 실행한 후 다른 사람이 push하여 원격 저장소를 업데이트 해버린 경우 아래의 그림과 같이 내가 push 요청이 거부되는 경우가 발생

  • 다른 사람의 업데이트 이력을 내 저장소에도 갱신 해야 함. 만약 병합(merge)하지 않은 채로 이력을 덮어쓰게 되면 다른 사람이 push 한 업데이트 내역이 사라져 버리기 때문

출저: 누구나 쉽게 이해할 수 있는 Git 입문




© 2019. by binibeans

Powered by aiden