[Git] Git 관련 개념 정리

Donghyun Kim·2022년 2월 20일
0

✔ Git

  • Git이란? 파일 및 소스 코드를 효율적으로 관리하고 분산 구축할 수 있게 해주는
    버전 관리 시스템 (VCS : Version Control System)이다.

✔ GitHub

  • Git을 이용한 프로젝트를 저장할 수 있는 클라우드 기반 저장소를 지원해주고 팀원들과
    버전 관리 및 협업을 수행할 수 있게 해주는 웹 호스팅 서비스 중 하나이다.

✔ Git Life Cycle

  • Git은 Working Directory, Staging Area, Git Directory(Repository) 3가지 작업영역으로 파일들을 관리한다.

  • Working Directory : Git이 추적 중인 파일들이 위치하는 영역

    git init을 통해서 git이 관리하도록 지정된 디렉토리
    .git 디렉토리를 제외한 모든 것(파일, 하위 디렉토리)의 작업한 파일(생성, 수정한 파일)들이 저장되는 곳이다.

  • Staging Area : commit 할 준비가 된 파일들이 위치하는 영역

    해당 영역은 .git 디렉토리에 단순한 파일들로 존재한다.
    작업한(수정된) 파일들 중 버전으로 만들고자(commit 하고자) 하는 파일을 저장하는 영역
    git에서는 기술용어로써 "Index"라고 부르기도 한다.

  • Git Directory(Repository) : 커밋되어 버전을 관리하는 파일들이 위치하는 영역입니다.

    Git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳
    .git 디렉토리가 Git Directory(Repository)이며,
    프로젝트의 버전 정보를 관리하기 필요로 한 모든 파일이 저장되어 있다.



✔ Git의 3가지 상태

Git은 파일의 변경사항들을 버전별로 관리하기 위해서 파일들을
Committed, Modified, Staged 3가지 상태로 관리한다.

  • Modified : 수정한 파일을 로컬 데이터베이스에 commit하지 않은 것을 말하며
    Working Directory 영역에 있는 파일들 중 수정을 한 파일들의 상태를 의미한다.
  • Staged : 수정한 파일들 중 commit 할 것이라고 표시한 상태를 말하며
    Staging Area 영역에 있는 파일들의 상태를 의미한다.

  • Commited : Staged 상태의 파일들이 로컬 데이터베이스에 안전하게 저장되었다는 것을 의미한다.

    commit 된 대상 파일은 Working Directory 영역으로 돌아가게 되고 대상 파일의 버전을 관리하는 파일들은 Git Directory(Repository)에 저장된 상태를 말한다.

    Commited 상태 대상 파일을 수정하게 되면 Modified 상태가 된다.



✔ Git 파일의 Life Cycle 관점에서 본 4가지 상태

  • Untracked : Working Directory에 존재는 하지만 git이 관리를 하지 않는 파일들의 상태

    Working Directory에 새롭게 만들어진 파일들이 이에 해당한다.
    새로운 파일을 만든 후 git status 명령을 실행하면 "Untracked fiels : 파일 이름" 문구가 표시되고, 해당 문구의 파일이 Untracked 상태의 파일을 의미한다.

  • Staged : commit 하고자 하는 파일의 상태

    위에서 살펴본 Staging Area 영역에 있는 파일의 상태 (위에서 살펴본 Staged와 같은 개념)
    Untracked 상태의 파일 혹은 commit 된 이후 수정이 진행된 파일(Modified 상태의 파일)을
    git add 명령을 수행하게되면 해당 파일들은 Staged 상태가 된다.

    git add 명령 이후 git status 명령을 실행하면 "changes to be committed : 파일이름"
    을 볼 수 있는데 해당 문구에 있는 파일이 바로 Staged 상태 파일이다.

    "changes to be committed"는 'commit(버전화) 될 파일들의 목록' 을 의미한다.

  • Unmodified : 수정을 하지 않은 파일 상태

    Unmodified 상태의 파일은 한 번 이상 commit 된 파일 중 수정을 하지 않은
    파일 또는 다른 저장소의 파일들을 clone 하였을 때의 파일들을 의미한다.
    (위에서 살펴본 committed와 같은 개념)

  • Modified : 수정을 한 파일의 상태

    Unmodified 상태의 파일을 수정을 하게 되면 Modified 상태가 된다.

    Unmodified 상태의 파일을 수정 한 뒤 git status 명령을 실행하면 "changes not statged for commit : 파일 이름" 문구를 볼 수 있다. 해당 문구는 Modified 상태의 파일을 의미한다.

    "changes not staged for commit"의 의미는 Tracked 상태이지만 아직 Staged 상태는 아닌 파일들의 목록을 의미한다.



✔ 참고자료

profile
"Hello World"

0개의 댓글