Git 개념 정리 (What is Git?, Git states)

What is Git?

A distributed version control system (DVCS), 즉 분산 버전 관리 시스템의 일종이다.

아래 그림은 다른 local 버전 관리, 중앙 집중형 버전 관리 시스템과 분산 버전 관리 시스템을 그림으로 비교한 것이다.

Git (분산 버전 관리 시스템) 에서는 각 Local에서도 버전을 관리할 뿐만 아니라 Server에서도 Version을 관리하고 각각 다른 Computer끼리도 버전을 공유하고 같이 관리할 수 있다는 것이 특징이다.

Local version control (혼자 작업할 때 사용)
Centralized version control
Distributed Version Control Systems

그렇다면 위와 같은 분산 버전 관리 시스템의 장점은 무엇이 있을까?

  • Server가 다운되는 일이 발생해도 local에서 계속 작업을 할 수 있다.
  • 여러 개발자가 참여해도 각자 Local에서 편하게 수정하고 나중에 merge해서 사용할 수 있다.
  • 개발자는 여러 개의 repository를 만들어 사용할 수 있다.

Git States

3 main git states

먼저 Git 은 크게 3가지 상태로 나눌 수 있는데
1. 직접 작업을 하는 공간인 Working Directory (=Working trees)

2. 작업 상태를 repository로 보내기 전에 머물게 하는 공간인 Staging Area (=Index)

3. .git directory (repository)

특정 폴더를 Git으로 만들게 되면 자동으로 .git 폴더가 생성이 되고 Repository로 사용하게 된다. Working Directory에서 작업해서 저장(commit)한 결과들을 .git directory에서 버전 관리를 하게 되는 것이다.

파일이 Git에서 작동하는 사이클은 아래 그림과 같다.

파일의 라이프사이클

먼저 기본적으로 파일은 Git에 add 하기 전 Untracked 상태에 있다.

거기서 Git에 add를 하면 Staged 상태가 되고 이때부터 Git에서 그 파일을 Track을 하게 된다. (파일의 수정, commit등을 확인할 수 있게 되는 상태)

이제 add한 파일을 Commit을 하게 되면 repository에 저장되고 파일을 따로 수정하지 않는다면 Unmodifed 상태가 된다.

이후 그 file을 수정하게 되면 modified 상태가 되고 다시 add를 통해 staged 상태로 보내고 commit을 통해 repository에 저장할 수 있다.

이렇게 add, commit한 과정들은 git에 모두 남게 되고 나중에 git log를 통해 기록을 확인할 수 있다.


Donghun Ryou


Popular Categories


Search the website


today visits :

9

total visits :

8559


Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다