배포를 위한 Git 학습

윤태규·2023년 12월 13일
  1. 배포를 위한 Git 학습
    1) Git 이란 뭘까?
    Git은 체계적인 개발과 프로그램의 배포를 도와주는 형상 관리 도구, 또는 버전 관리 시스템 입니다. Git은 여러분의 작업 공간을 관리하는 ‘타임머신’이라고 볼 수도 있습니다.
    2) 형상 관리 도구는 왜 사용할까요?
    - 프로젝트의 개발 단계에서 소스 코드의 버전을 효과적으로 관리 할 수 있습니다.
    - 다양한 사람들과 협업하며 같은 파일여러명이서 동시에 작업할 수 있게 합니다.
    3) Git 사용에 필요한 개념 배워보기
    저장소(Repository)
    📌 모든 파일의 변경 사항을 저장할 수 있는 저장소입니다. 마치 프로젝트 전체를 보관하는 ‘상자’와 같다고 볼 수도 있습니다.
    여기서 레파지토리는 두 종류가 존재합니다!
  • Local Repository: 여러분의 컴퓨터에 존재하는 Repository를 말합니다.
  • Remote Repository: GitHub와 같이 Git 서버에서 제공되는 Repository를 말합니다.
  • 커밋(Commit)
    📌 커밋(Commit)은 이전 변경사항 기준으로 새로 변경된 내용을 기록하는 단위입니다. 작업을 하다가 중간에 변경사항을 기록하고 싶을 때마다 커밋을 생성하여 변경사항을 기록할 수 있습니다.
    • 현재 프로젝트의 내역을 ‘스냅샷’ 찍어 관리하는 것과 같다고 볼 수 있습니다.
  • 브랜치(Branch)
    📌 브랜치(Branch)는 여러 사람이 하나의 레파지토리에서 작업할 때 작업 내용이 충돌되 지 않도록 해주는 개념입니다. 프로젝트의 특정 시점의 ‘복제본’을 만들어 관리하는 것으로 볼 수 있습니다.
    - 브랜치를 사용한다면, 여러 사람이 동시에 작업하더라도 서로의 작업이 섞이지 않고, 개별적으로 관리할 수 있습니다.
    4) Git의 Flow 알아보기
    Git은 기본적으로, 아래와 같은 순서를 가집니다.
  1. 작업 디렉토리(Working Directory)
    • 개인 컴퓨터에서 프로젝트의 파일을 수정하거나 새로운 파일을 생성하는 작업을 담당합니다.
    • 이 단계에서는 실제로 코드를 작성하거나 수정하는 작업을 수행합니니다.
  2. 스테이징 영역(Staging Area)
    • 프로젝트의 변경사항이 생기면, git add 명령어를 이용해 변경사항을 스테이징 영역에 저장합니다.
    • 이 과정을 통해 원하는 변경사항만 선택적으로 커밋(Commit)에 포함시킬 수 있습니다.
  3. 로컬 저장소(Local Repository)
    • 스테이징 영역에 저장된 변경사항들을 git commit 명령어를 이용해 기록을 남깁니다.
    • 이러한 기록들은 각각 커밋(Commit)이라 부르며, 각 커밋은 고유한 ID를 가지며 프로젝트의 버전을 표현합니다.
  4. 원격 저장소(Remote Repository)
    - 로컬 저장소에 저장된 커밋 내들을을 git push 명령어를 통해 Github와 같은 원격 저장소에 업로드 됩니다.
    - 원격 저장소를 이용해 프로젝트를 다른사람들과 공유하거나, 다른 장치에서도 이어서 작업할 수 있게됩니다.
    5) Git 명령어 맛보기
  • git init
    📌 현재의 폴더를 Git이 추적하고 관리할 수 있게 만드는 명령어입니다.
    • 즉, 해당 프로젝트 폴더를 Git repository 로 만들어줍니다.
  • git add
    📌 지금까지 변경한 변경 사항을 스테이징 영역(Staging Area)에 올립니다.
    • git add .: 모든 변경 사항을 올린다.
    • git add app.js: app.js 변경사항만 올린다.
  • git commit
    📌 스테이징 영역에 추가된 변경사항들을 하나의 ‘스냅샷’처럼 기록하는 명령어입니다. 나중에 해당 커밋 시점으로 돌아갈 수도 있습니다.
    • git commit -m "feat: Add app.js" 를 실행하면, app.js파일에 대한 업데이트 내용을 커밋 메시지에 담게됩니다.
  • git remote add
    📌 로컬 저장소(Local Repository)에 원격 저장소(Remote Repository)를 추가할 수 있습니다.
    • git remote add <name> <url> 명령어로 Local Repository 에 <name>이라는 이름의 Remote Repository 를 추가할 수 있습니다.
      • <url> 에는 Remote repository의 주소를 의미합니다.

        → ex) git remote add origin https://github.com/foo/bar

      • origin 이라는 이름의 https://github.com/foo/bar 저장소를 연결합니다.

  • git push
    📌 로컬 저장소(Local Repository)에서 작업한 변경사항들을 원격 저장소(Remote Repository)로 업로드하는 명령어입니다.
    6) 배포 할때 Git은 어떻게 활용될까요?
  • 처음 배포하는 서버인 경우
    1. **git clone**
      • 원격 저장소의 프로젝트를 로컬에 복제합니다.
    2. **yarn**
      • 해당 프로젝트를 실행하기 위한 JavaScript 라이브러리를 설치합니다.
      • 즉, 프로젝트의 의존성(dependencies)을 설치합니다.
    3. 서버 시작
      • 모든 라이브러리 설치가 완료되었다면, 서버를 실행합니다.
  • 이미 배포 했던 서버의 코드를 최신 코드로 재시작 하고 싶은 경우
    1. **git pull**
      • 원격 저장소에서 최신 코드를 가져옵니다.
    2. (필요한경우) yarn
      • 새롭게 추가된 라이브러리가 있다면 설치합니다.
    3. 서버 재시작
      • 서버를 멈춘 후, 다시 시작하여 코드의 변경사항을 반영합니다.
  • 7) 배포 할 때 Git을 사용하면 어떤 장점이 있을까요?
    👉 Git을 사용하면 원하는 시점의 코드 버전으로 쉽게 되돌릴 수 있습니다.
    • 만약, 서버를 최신 코드로 수정하였는데, 예기치 못한 문제가 발생한다면, 이전 버전의 코드로 손쉽게 되돌릴 수 있습니다.
    • 이를 가능하게 하는 Git의 기능이 checkout 입니다. checkout 명령어를 이용하면 특정 커밋, 즉 특정 시점의 코드 상태로 쉽게 되돌릴 수 있게 되는것이죠.
  1. GitHub에 Repository 올리기
    1) Github는 뭔가요?
    👉 GitHub는 Git으로 관리되는 프로젝트 코드를 웹에서 관리 및 공유하는 클라우드 기반 호스팅 서비스입니다.
  • Github는 Repository라는 코드 저장소를 웹에서 제공하며, 개발자들이 팀으로 프로젝트를 함께 진행할 수 있도록 협업 도구를 제공합니다.
  • Github는 Git을 기반으로 하는 웹 서비스 중 가장 대표적으로 사용됩니다. 이 외에도 GitLab, Bitbucket과 같이 다른 Git 기반 웹 서비스도 존재합니다.
profile
끝까지 가자

0개의 댓글