[새싹 프론트엔드] 221219 TIL - 깃(Git)&깃허브(GitHub)

뒹귤·2023년 2월 13일
0

새싹 프론트엔드

목록 보기
41/41
post-thumbnail

깃(Git)

  • 2005년 리누스 토르발스가 처음 소개
  • 특징
    • 컴퓨터 파일의 변경사항을 추적
    • 여러명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템
  • 개발자들은 깃을 통해 수많은 소스 코드를 효율적으로 관리

깃(Git)의 특징

  • 버전 관리(Version Control)

    • 문서를 작성한 뒤 원본도 남겨두고 수정한 내용을 저장해야 하는 경우
    • 문서를 수정할 때마다 언제 수정했는지, 어떤 것을 변경했는지 편하고 구체적으로 기록하기 위한 버전 관리 시스템
  • 백업(Backup)

    • 현재 컴퓨터의 자료를 인터넷 상의 공간(원격 저장소)에 백업
    • 주로 깃허브(GitHub) 사용
  • 협업(Collaboration)

    • 원격 저장소를 기준으로 여러 사람이 함께 일할 수 있음
    • 누가, 언제, 어느 부분을 수정했는지 기록 가능

깃 프로그램의 종류

  • 깃허브 데스크톱(GitHub Desktop)
  • 토터스깃(TortoiseGit)
  • 소스트리(Source Tree)
  • 커맨드 라인 인터페이스(CLI)
    • 터미널 창에 직접 명령을 입력해서 깃을 사용하는 방식
    • 리눅스 명령어 및 깃 명령어를 알아야 사용 가능
    • 대부분의 개발자들은 이 방식으로 깃을 사용

깃 설치하기 - macOS

  • homebrew 설치하기
/bin/bash -c "$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • 깃 설치하기
$ brew install git

깃 환경 설정

사용자 정보 입력

  • 사용자 이름
$ git config --global user.name "사용자이름"
  • 사용자 이메일
$ git config --global user.email "사용자이메일"

줄바꿈 문자열

운영체제 별로 줄바꿈 문자열을 처리하는 방식이 달라서 충돌이 날 수 있음

  • Windows
$ git config --global core.autocrlf true
  • Mac
$ git config --global core.autocrlf input

버전 만들기

버전이란?

  • 깃에서 문서를 수정하고 저장할 때마다 생기는 것
  • 버전마다 변경 시점과 변경 내용을 확인할 수 있음
  • 이전 버전으로 되돌아갈 수 있음

스테이지와 커밋

  • 작업 트리(working tree)

    • 파일 수정, 저장 등의 작업을 하는 디렉터리
    • 작업 디렉터리(working directory)라고도 함
    • 우리 눈에 보이는 디렉터리를 말함
  • 스테이지(stage)

    • 버전으로 만들 파일이 대기하는 곳
    • 눈에 보이지 않음
  • 저장소(repository)

    • 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳
    • 눈에 보이지 않음

버전 생성 과정

  1. 작업 트리에서 파일을 수정하고 저장

  1. 버전을 만들고 싶으면 스테이지에 넣음
$ git add .     // 전체 파일
$ git add 파일명  // 특정 파일

  1. 버전을 만들기 위해 깃에게 ‘커밋(commit)’ 명령을 내림
  • 커밋 메시지
    • 커밋할 때 해당 버전에 어떤 변경사항이 있었는지 확인하기 위한 메시지를 기록
    • 영어로 작성하는 것이 좋음
$ git commit -m '커밋메시지'

  1. 스테이지에 있던 파일을 저장소에 새로운 버전으로 저장

깃허브(GitHub)

  • 지역 저장소(local repository)

    • 작업을 수행한 후 커밋을 저장한 컴퓨터
  • 원격 저장소(remote repository)

    • 지역 저장소가 아닌 컴퓨터나 서버에 만든 저장소
    • 지역 저장소와 연결되어 있으면서 백업 및 협업을 가능하게 함
    • 인터넷에서 원격 저장소를 제공하는 서비스를 주로 사용
      • 깃허브

지역 저장소를 원격 저장소에 연결하기

  • 저장소(repository) 생성

    • 오른쪽 상단 + 버튼 클릭→ New repository 선택
  • 원격 저장소 주소

    • 원격 저장소 주소만 있으면 어디서든 지역 저장소를 백업하거나 다른 사람과 협업이 가능함
https://github.com/아이디/저장소이름

VSCode에서 깃 사용하기

  • 깃허브 계정 로그인하기

  • 파일 생성
    • 폴더 생성→ 깃 초기화

    • 리액트에서는 디폴트로 설정되어 있음

      $ git init
  • 작업한 파일 스테이지에 올리기(스테이징)
$ git add .     // 전체 파일 스테이징
$ git add 파일명  // 특정 파일만 스테이징
  • 버전으로 생성하기(커밋)
$ git commit -m '커밋메시지'
  • 브랜치 변경하기 → 최초 1회
$ git branch -M main
  • 원격 저장소에 연결하기 → 최초 1회
$ git remote add origin 원격_저장소_주소

// 저장소 변경 시 -> origin의 저장소 초기화
$ git remote rm origin
  • 원격 저장소에 push 하기
$ git push -u origin main
💡 한번 스테이징을 거친 파일은 git add . → 명령어 생략 가능 $ git commit -am “second commit” → 이런 식으로 스테이징과 커밋을 동시에 할 수 있음

팀 프로젝트를 위한 깃허브 설정

[팀장]

  • 저장소 생성 → 프로젝트 생성 → main 브랜치에 push
  • Branch 보호 규칙 설정

  • 팀원 초대

[팀원]

  • 깃허브 저장소 복제
$ git clone https://github.com/팀장계정/프로젝트이름.git

  • 본인 브랜치 생성
$ git branch gyull
  • 브랜치 변경(master → sooa)
$  git switch gyull
  • 스테이지에 올리기 → 커밋
$ git add .
$ git commit -m "gyull first commit"
  • 깃허브 저장소에 파일 push
$ git push origin 브랜치이름

// 예) gyull 브랜치에 파일 업로드
$ git push origin gyull
  • 깃허브 사이트→  Pull request

[전체]

  • pull request 확인

  • pull request 승인 완료 → Merge pull request 버튼 활성화 → 팀원은 merge 하지 않는 것이 좋음

코드 작성 중 main 브랜치 변경 발생

  • [전체] 기존에 작성하던 코드 저장 및 스테이징 / 커밋하기
$ git add .
$ git commit -m "second commit"
  • [전체] 최신프로젝트 pull
    • main 브랜치로부터 최신 파일 다운로드(동기화)
$ git pull origin main
profile
🌱 FE 

0개의 댓글