Git - 1
개발자라면 반드시 알아야 하고 쓸 줄 알아야 하는 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 은 깃의 커밋 이력도 포함하여 모든 설정을 다 다운받는다.