git

[Git] git 기초 간단정리(local repository)

pogles 2023. 4. 11. 23:27

git 을 통해 Local repository 와 Remote respository 사이를 연결하여 데이터를 보내어 버젼을 관리할 수 있다.

 

Local repository 영역은 working directory, staging area, git directory 로 분리하여 볼 수 있다.

 


Local repository

1. working directory 

 

작업 디렉토리 영역으로 실제로 프로젝트를 만들고 작업을 하는 영역이다. 이는 untracked 와 tracked 로 나눌 수 있다.

untracked tracked
단 한번도 git 을 통해 버전관리를 받지 않아 수정내역을 추적하지 않는 상태 한 번 이상 git 을 통해 commit 을 한 파일로 수정여부를 계속 추적하는 상태
unmodified modified
이전 commit 이후 수정작업이 없었음 이전 commit 이후 수정작업이 있었음

** git 을 통해 전달하고자 하는 파일이 untracked 이더라도 git add . 를 통해 staging 영역으로 전달 할 수 있음.

 

 

2. staging area

 

working directory 에서 git add 명령어를 통해 추가된 파일들이 위치하는 공간으로 commit 이 예정된 파일들! 이다.

 

staging area 는 왜 존재하는가 = 3가지 상황에서 이점이 있음

 

1) 수정한 파일 중에서 일부분만 commit 하고 싶을 때

 - 만약 집중이 잘되는날에 많은 부분의 파일을 수정했다고 했을 때, 수정한 모든 파일이 아니라 기능별로 분리하여 commit 을 하고싶다 생각했을 때, staging area가 없다면 어쩔 수 없이 모든 수정파일을 commit 해야할 것이다. staging area 는 개발자가 모든 수정한 파일 중에서 일부분만 commit 할 수 있는 기회를 준다.

 

2) merge 등으로 인한 충돌을 해결해야 할 때

만약 merge 진행상황에서 일부 파일에서 충돌이 발생했을 때, 충돌을 해결하는 과정에서 상당한 시간이 발생했다고 치면, 충돌이 발생하지 않은 대부분의 파일들을 임시로 저장할 공간이 필요하다. Git 은 staging area 를 통해 임시저장을 주어 충돌이 발생하지 않은 대부분의 파일들을 staging area 에 임시저장하고, 충돌을 해결한 일부파일들만 따로 해결한 이후 add를 통해 staging area 에 add 하고 모두를 commit 할 수 있게 된다.

 

3) 커밋을 다시해야 할 때

커밋을 다시하기전에 파일을 수정하고자 할때 staging area 에 add 만 하고 commit --amend 를 통해 커밋을 다시 할 수 있다.

 

3. git repository(local)

 

commit 들이 모여있는 저장소이다. remote repository 로 push 하고자하는 commit 들이 있으며, 각 commit 들은 각각의 고유 hashcode 를 가지고 있고 이를 통해 버젼을 확인할 수 있다. 또한 commit 의 내용을 보면 각 commit 에서 어떠한 수정된 사항이 있는지 상세하고 확인할 수 있다.

 


Remote repository

 

github repository 등 원격저장소를 의미한다. github 를 통해 버젼관리를 편하게 할 수 있다.

 

 

 

 

 

reference

 

Git의 Staging Area는 어떤 점이 유용한가

Git에는 Staging Area라는 공간이 있다. 어떤 변경사항이 저장소에 커밋되기 전에, 반드시 거쳐야만 하는 중간단계이다. 다른 버전관리도구에는 이에 정확히 대응하는 것은 없다. 저장소가 추적하는

blog.npcode.com