📚 git 시작하기


git process

git에는 크게 세 가지의 작업 영역이 있습니다.

  1. working directory
  2. staging area
  3. local repo

working directory

이 공간에서 파일을 생성하고 수정합니다.
이 공간에서의 파일은 크게 두 가지로 나뉩니다.

  • Untracked : 워킹 디렉토리에 추가되었지만 git에서 관리하지 않은 상태입니다.

  • Tracked : git이 이미 알고있는 파일을 가리킵니다. 이 안의 파일들은 세가지 상태중 하나입니다.
    - Unmodified : 마지막 저장이후 수정 없이 저장된 상태를 의미합니다.
    - Modified : 수정한 파일을 아직 로컬 저장소에 Commit하지 않은 것을 의미합니다.
    - Staged : 현재 수정한 파일을 곧 Commit할 것이라고 표시한 상태를 의미합니다.

    수정이 완료된 파일은 git add 명령어를 통해서 staging area로 옮겨갈 수 있습니다.

staging area

git에 있는 파일의 상태를 확인하고 싶을 땐 git status 명령어를 사용하면 됩니다. git commit 명령어로 스냅샷을 남길 수 있습니다.

스냅샷이란 특정 시점에 어떤 파일에 어떤 내용이 기록되어 있었는지, 폴더 구조와 어떤 파일이 존재했는지 확인 할 수 있는 정보입니다.

local repo

git이 프로젝트의 메타 데이터와 객체 오브젝트를 저장하는 곳을 말합니다.
staging area에 있던 파일들이 git commit 명령어를 통해 이 공간에 저장 됩니다.

remote

commit이 완료된 파일은 아래 명령어를 통해서 원격저장소로 이동시킬 수 있습니다.
git push 저장소명 브랜치명


git branch

git branch란 특정한 시점에서 독립적으로 코드를 변경할 수 있도록 하는 모델입니다.
즉, 그 시점으로 부터 동일하게 복사한 평행 우주 공간이라고 생각하면 편합니다. 작업한 브랜치 내용에 문제가 없다면 메인 브랜치에 병합(Merge)해주어 변경사항을 적용할 수 있습니다. 이로써 독립된 브랜치를 활용하여 작업 단위로 버전관리를 할 수 있고, 실험적인 개발을 할 때에도 안전한 개발이 가능합니다.

git branch command

$ git branch 현재 브랜치 확인하기
$ git branch -r remote상의 브랜치 확인하기
$ git branch setup 'setup'이라는 브랜치 생성하기
$ git switch setup 'setup'이라는 브랜치로 이동하기
$ git merge setup 'setup'이라는 브랜치를 끌어와 병합하기
$ git branch -D setup 'setup'이라는 브랜치 삭제하기
$ git branch -M newname 브랜치 이름 바꾸기

merge

브랜치를 병합할 때에는 현재 브랜치를 'main'으로 하고, merge할 브랜치를 끌어오면 됩니다.
$ git merge setup 'setup'이라는 브랜치를 병합한다는 의미입니다.

git confilct

git confilct이란 git merge로 인해 합쳐지면서 생기는 충돌을 의미합니다.
git 충돌시에 할 수 있는 선택은 두가지입니다.

  1. 겹치는 두 내용을 재조합한다.
  2. 둘 내용 중 하나를 선택한다.

Trailing Comma

git은 라인 단위로 추적을 하기 때문에 줄바꿈 하는 것 자체를 변화로 인식하고, git 병합시에 연속성이 틀어질 우려가 있습니다. 이를 해결하기 위해서 요소 나열할 때 모두 줄바꿈을하고 마지막에 콤마를 붙이는 습관을 들여야합니다.

0개의 댓글