sharingStorage

git이란? 본문

git

git이란?

Anstrengung 2022. 2. 24. 17:08

git이란?

 - 형상 관리 도구 중 하나

 - 버전 관리 시스템이라고도 한다.

 - Git은 소프트웨어를 개발하는 기업의 핵심 자산인 소스코드를 효과적으로 관리할 수 있게 해주는 무료 공개 소프트웨어

 

 

git의 요소

git은 원격저장소(remote repository)까지 포함하여 크게 4가지 요소로 나눌 수 있다.

1. Working Directory

2. Staging Area

3. Local Repository

4. Remote Repository

 

 

Working Deirectory

이것은 로컬환경에서 작업하는 파일들이라고 생각하면 될 것 같다. .git폴더는 git init명령어를 실행했기때문에 나타난 것이다. 

저장소의 어느 한 시점을 바라보는 작업자의 현재 시점이다.

 

 

Staging Area(Index)

Working Directory에서 git add명령어 사용시 Staging Area로 가게된다. Index라고도 부르며 commit 수행 예정인 파일들이 올라가는 곳이다.

다른 사람과 협업 중 push 충돌이 나서 다시 수정하려면 원격저장소에서 pull을 해오면 수정사항이 다 날라갈 수도 있기 때문에 commit 전 Staging Area에 저장해두고 문제가 발생할 시 이 안에 소스코드를 이용한다.

 

 

Local Repository

위 사진에 있는 .git폴더라고 보면 된다. working directory에서 git add를 해서 staging area로 staging area에서 git commut을 하면 이 폴더에 데이터들과 해쉬를 담고있는 파일이 수정되는데, 수정되는 내용들은 우리가 커밋했을 때 수정내역들이라고 보면 된다. 

 

 

Remote Repository

원격 저장소이다. github의 repository를 생각하면 된다.

 

 

사진출처: https://inpa.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-%EA%B0%9C%EB%85%90-%EC%9B%90%EB%A6%AC-%EC%89%BD%EA%B2%8C%EC%9D%B4%ED%95%B4

파일의 상태

Untarcked와 Tracked

한번이라도 git add명령어를 사용해서 Staging Area에 포함되거나 commit을 통해 git에의해 관리되는 파일을 Tracked한 상태라고 하며 , 

working directory에 있지만 git add나 commit을 하지 않은 파일을 Untracked한 상태의 파일이라고 한다.

Untracked한 파일은 git이 신경쓰지 않는다.

 

 

Unmodified와 Modified

Untracked와 Tracked가 추적 관리 여부 관점에서 바라본 상태라면 파일의 변경 여부에 따라 Unmodified와 Modified로 나눌 수 있다.

변경 발생 기준은 '파일이 Staged 또는 Commit된 시점 이후로 변경되었는가' 이다.

git이 관리하지 않는 Untracked파일은 두 상태를 갖고있지 않으며 이말은 곧 Unmodified와 Modified는 Tracked상태라는 것이다.

 

 

Staged

파일을 수정한 후 commit하기 전 git add명령어를 사용해 파일을 staging area영역으로 올려놓은 상태

 

 

commited

Staging Area에 있는 (staged한 상태인) 파일을 git commit 명령어를 통해 local repo에 올려뒀을 때 그 파일의 상태를 말함.

 

정리

원격 repo로부터 git clone을 받을 경우, 해당 영역은 working directory가 된다. 그리고 file을 수정하면 그 파일은 modified 상태가 되며. 변경 된 파일을 git add 명령어로 staging area 영역으로 올리는데 이 때, 파일은 staged 상태이다. 이 상태에선 commit을 할 수 있으며 commited 상태가 되면 local repo에 commit 된 것이다,

 

 

 

 

 

 

 

 

 

 

Reference

 

 

 

 

Comments