Git

Git - 1

완두완두콩 2022. 1. 24. 12:00

개발자라면 반드시 알아야 하고 쓸 줄 알아야 하는 Git.. (하지만 그렇지 못한 나..)

push , pull 등 간단한 명령어만 알고 있었지만 이번 졸작에서 깃을 통해 협업 관리를 할 예정이고

향후 미래를 위해 공부 & 정리해보고자 한다.

 

Git Basic


 

init 을 통해 깃 저장소로 초기화하고 commit 으로 코드 기록 , 브랜치로 코드를 분리, merge 로 병합 ,

마지막으로 push로 원격 저장소에 저장하는 흐름.

 

예를 들어 , board 라는 프로젝트에 대해 깃 저장소를 만들고 싶은 경우 , 

$ cd board (경로명) -> git init -> 깃 저장소 생성

깃 저장소에 숨겨진 폴더를 추가함으로써 깃 저장소로 변경된다.

 

 

개념


깃을 사용하기 위해서는 Working Directory ( = Working Tree ) 와 Stage

그리고 repository 에 대한 이해가 동반되어야 한다.

 

Working Directory 에서는 untracked 와 tracked 두 가지 상태로 존재 가능하다.

새로 파일이 생성되면 그 파일들은 모두 처음에 untracked 상태로 존재하게 된다.

깃이 모든 파일을 관리한다면 부하가 상당히 클 것이다. 그렇기에 관리를 원하는 파일만 tracked 상태로 변경하여

따로 관리하는 것이다.

git add 명령어를 통해 워킹 디렉토리에 생성된 파일을 올리면 tracked 상태로 변경되며 추적 가능한 상태가 된다.

 

 

스테이지 또한 stage 와 unstage 상태가 존재한다. 스테이지는 추적 정보만 기록하는 공간인데 이러한 stage 가

존재하는 이유는 커밋을 빠르게 처리하기 위함이다.

 

즉 , 우선 우리는 워킹 디렉토리에서 파일을 git add 를 통해 tracked 상태로 변경해준다. 

이렇게 되면 stage 영역에서도 해당 파일이 stage 상태가 된다.

만약 파일이 변경되거나 한다면 untracked , unstage 상태가 된다. ( 다시 git add 필요 / 새로 추가한 파일도 동일한 untracked , unstage 상태)

 

여기에 추가로 modified , unmodified 상태가 나오는데 , git add 를 통해서 stage 영역에 올려놓았으나 만약

코드를 수정하게 되면 modified 상태로 변하게 된다. 이 경우 , untracked , unstage, modified 상태가 된다.

 

다시 git add 를 통해 변경사항을 적용하면 tracked , stage , unmodified 상태로 변하게 된다. 

 

 

.gitignore


 

 

다운로드 vs Clone


 

다운로드는 완성된 파일만 다운받는다. ( 코드의 커밋 이력 포함 X)

반면 복제인 Clone 은 깃의 커밋 이력도 포함하여 모든 설정을 다 다운받는다.