본문 바로가기
Development/Git

[Git_1] Git 기초 지식 (Introduction of Git)

by yoonsoodev 2022. 10. 6.

Git이란?

  • VCS (Version Control System)의 일종
  • 프로젝트의 시간과 차원을 관리
    • 시간과 관련된 Control
      • 프로그래밍은 계속해서 새로운 버전이 생성됨
      • 이전 버전에서 문제가 생겼을 시 해당 버전에 대해 수정 가능
    • 차원과 관련된 Control
      • 회사에서 프로젝트 진행 시 새로운 기능을 임의로 추가해보고 시도해보고 싶을 때 사용 가능
      • 사본을 복사해서 시도한다면 용량 차지 ↑ + 실제로 적용 시 변경사항들을 모두 옮기는데 시간 노력 ↑
      • 프로젝트의 내용들을 마치 다른 폴더인 것 처럼 여러 모드로 쉽게 전환 가능
  • 쉽게 말해서 Ctrl+Z와 Ctrl+Y의 기능을 프로젝트 차원에서 제공한다고 보면 됨
    • 다만 프로젝트는 여러 작업을 동시에 진행하기 때문에, git은 여러 작업을 진행하고 합치고 충돌을 해결하기 위한 기능을 제공
    • ex) 회사에서 새 기능을 만들거나 버그 수정 시 브랜치를 만들고 코드 리뷰 후 메인 브랜치에 머지(merge)하는 방식을 이용

 

❓ 이용 환경

  • Source Tree
    • Git을 GUI로 다룰 수 있도록 함
    • 시각적으로 잘 나타낼 수 있도록 하는 프로그램
  • Git Bash
    • git에 대한 명령어를 직접 입력할 수 있도록 하는 명령창

 

Git 이용 방식 (CLI vs GUI)

  • CLI (Command Line Interface)
    • 명령줄을 입력해서 사용
    • Git Bash를 통해 이용
    • Git에서 무언가를 사용하기 위해 어떤 명령을 사용할 때는 CLI 이용
  • GUI (Graphical User Interface)
    • 일반인 사용자들이 쓰기 편하도록 그래픽 요소를 사용한 인터페이스
    • 소스트리같은 프로그램 이용
    • 프로젝트의 상태를 Git상에서 자세히 살펴보아야 할 때 이용

 

❓ 기초 용어 (= 자주 사용되는 Git 용어)

  • repository/repo
    • Git으로 버전 관리하는 디렉토리를 의미
  • local repository
    • 로컬 저장소 
    • 작업자의 개발환경(PC)에 설정된 Git 저장소
  • commit
    • 특정 상태를 기록한 것, 즉 버전
  • branch
    • 특정 버전에서 가지치기 또는 갈래를 내 놓은 것
    • 즉, 또다른 작업공간을 의미
  • merge
    • 특정 브랜치에서 작업한 내용을 또 다른 브랜치에 적용

 

❓ Git의 3가지 영역

출처: https://iseunghan.tistory.com/322

  • Working Directory
    • 내가 작업하고 있는 프로젝트의 디렉토리
  • Staging Area
    • 커밋을 위해 git add 명령어로 추가한 파일들이 모여있는 공간
    • git add로 커밋 파일 추가 시 바로 Repository에 올라가지 않고 Staging Area에 올라감
  • Repository
    • 커밋들이 모여있는 저장소
    • Staging Area에 추가한 파일들을 commit할 경우 최종적으로 도달하는 장소

 

참조 링크

https://www.yalco.kr

https://subicura.com/git/guide/

Staging Area 관련: https://iseunghan.tistory.com/322