Git Basic Concepts

이현정·2022년 4월 1일
1

Git Workflow

Repository

Repository는 사용자의 파일들이 위치한, "깃이 주시하고 있는 폴더(저장소)"이다.
Repository는 .git이라는 폴더를 가지게 되고, 이 폴더에는 깃에 관련된 명령어나 파일, 히스토리들이 있다.
깃은 해당 폴더를 통해 Repository 내부의 변경사항들을 추적할 수 있다.

이러한 Repository 에는 2가지 버전이 있는데:

1) Local Repository: 로컬 저장소. 개인 컴퓨터에 저장된 파일. 깃헙을 다룰 땐 깃헙 데스크탑에만 커밋된 상태. "origin" 이라고 불리기도 한다.

2) Remote Repository: 전용 서버에서 관리되는 원격 저장소로 팀원들과 공유 가능하다. 깃헙 데스크탑에서 깃헙 레퍼지토리로 퍼블릭 커밋된 상태.

Commit

커밋은 기본적으로 작업에 대한 기록이다.
작업중인 폴더에 어떤 변경사항이 있을 때 그것을 히스토리로 기록하고 싶을 때 사용한다.

Git Workflow(Git Area)

Git workflow(Git Area)는 기본적으로 3단계로 나눠져 있다. (위 그림의 까만 부분)

  • 1. Working Directory(Unstage Area)
    우리가 현재 작업하고 있는 폴더로 생성, 수정, 삭제한 파일들이 있는 디렉토리.
    git add (파일명) 명령어로 working directory 에 파일을 올려 놓을 수 있으며, 이 때부터 git 이 이 파일을 추적하기 시작한다.

    ex. Visual Studio Code 와 같은 IDE 에서 작업중인 상태

  • 2. Staging Area
    Index라고도 부르며 , 변경사항이 있는 파일들을 선택해 커밋할 수 있도록 지정하는 곳
    (버전을 만들기 위해 준비 중인 파일들의 스냅샷 데이터가 저장된 곳)

    ex. Github Desktop 에서 변경사항 중 커밋할 사항 선택하는 상태

  • 3. Git Directory(Local Repository)
    파일들이 커밋된 곳으로, 파일들의 변경사항에 대한 스냅샷을 가지고 있는 곳
    (Staging Area를 거쳐 만들어진 버전들이 저장된 곳)

    ex. Github Desktop 에서 커밋할 변경사항들을 선택해서 커밋한 상태

Branch 🌟

브랜치는 main 또는 master 브랜치의 마지막 커밋으로부터 다른 타임라인을 가지게 될 부분입니다.
독립적으로 어떤 작업을 진행하기 위한 개념으로, 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다.

예를 들어, 메인 시나리오를 적고, 다양한 엔딩을 적어본 뒤에, 마지막에 가장 마음에 드는 엔딩을 골라 메인 시나리오에 가져와 소설을 완성하는 것과 같은 과정이라고 생각할 수 있습니다. 이러한 과정을 3가지로 나누어 설명해보겠습니다.

  • 1. Common Base Part (main, or master)

메인 브런치에서 토대가 될 코드를 작성합니다.

  • 2. Master Tip or Feature Tip part

    master branch 의 수정사항내가 만든 또다른 branch 의 수정사항이 발생합니다. master 에서 생긴 수정사항을 현재 작업중인 branch 에도 적용하고 싶다면, 현재 작업중인 브런치의 상태에서 상단의 branch > update from default branch 를 통해 가능합니다.

  • 3. New Merge Comit part
    메인 브런치에 원하는 버전의 브런치를 통합할 때입니다. 메인 브런치로 이동branch > merge into current branch 를 클릭하면 됩니다.

이제 원하는 버전의 변화가 메인 브런치에 모두 적용이 되었기 때문에, 기존 원하는 버전의 브랜치를 포함한 다른 버전의 브랜치들은 삭제해도 좋습니다.

느낀점 💬

이 강의를 진작 봤다면 Netflix 클론할 때 다양한 버전 시도해보느라 각 버전의 파일을 따로 만들고 버전별로 깃 레퍼지토리를 만들 필요가 없었을 텐데...... 이제라도 알아서 다행인가. 고생을 해봐서 더 머리에 잘 들어오는건가. 아무튼 아직 Netflix 작업 사항 좀 남았는데 이번 니코쌤 happy-ending, sad-ending 처럼 작업해 봐야겠다.

0개의 댓글