처음 배우는 Git & GitHub

easy!·2022년 2월 5일
0
post-thumbnail

패스트캠퍼스 강의(프런트엔드 개발 올인원 - 처음 배우는 Git & GitHub)를 듣고 요약한 글입니다.

소개

왜 Git과 GitHub을 익혀야 하나요?

팀 프로젝트에서 버전관리와 클라우드 저장소는 필수 불가결한 기술입니다.

버전 관리의 1등인 Git과 클라우드 저장소의 1등인 GitHub을 익히면 팀 프로젝트와 회사에서 효율적인 개발 협업을 할 수 있습니다.


환경 설정: 버전 관리가 뭔가요

버전 관리 시스템: Git

코딩할 때
단순히 crtl + z 를 눌러 이전 상태로 되돌리는 것이 아니라,
원하는 시점마다 깃발을 꽂고 (버전을 만들고)
이들 간에 자유롭게 돌아다닐 수 있다.

내가 만든 버전뿐 아니라
동료가 만든 버전으로 이동할 수 있고,
동료와 내 버전을 비교해서

최신 본으로 코드를 업데이트할 수 있다.

GUI

Git을 사용하는 두 가지 방법


1. CLI (Command Line Interface)
2. GUI (Graphic User Interface)

GitHub에 코드를 올리는 과정

  1. 내 컴퓨터 프로젝트 폴더에 '여기에서 Git을 쓸 거다!'라고 명령 (git init)
  2. 즐겁게 코딩
  3. 내가 변경한 파일 중 올리길 원하는 것만 선택 (git add)
  4. 선택한 파일들을 한 덩어리로 만들고 설명 적어주기 (git commit -m "첫 페이지 제작")
  5. GitHub 사이트에서 프로젝트 저장소 만들기
  6. 내 컴퓨터 프로젝트 폴더에 GitHub 저장소 주소 알려주기 (git remote add)
  7. 내 컴퓨터에 만들었던 덩어리 GitHub에 올리기 (git push)

Git 초기화와 로컬 저장소

이 폴더에서 Git으로 버전관리를 하고 싶어!

  1. 원하는 폴더에서 Git 초기화를 하면 그때부터 가능 git init
  2. Git 초기화를 하면 .git이라는 숨겨진 폴더가 만들어진다. 이게 로컬 저장소
  3. 로컬 저장소에 내가 만든 버전 정보, 원격 저장소 주소 등이 저장된다.
  4. 원격 저장소에서 내 컴퓨터로 코드를 받아오면 로컬 저장소가 자동으로 생긴다.

로컬 저장소 생성 실습

  1. 내컴퓨터에 Boxiting-cat 폴더 생성
  2. Git Bash로 만든 폴더에 들어가기
  3. git init으로 로컬 저장소 생성

git init 명령어를 입력하니 Git repository가 초기화 된 것을 확인할 수 있다.

버전 생성 실습

  1. VS Code에서 README.md, index.html 파일 생성

  2. 원하는 파일만 선택하기

    git add README.md

  3. 메세지를 달아 커밋으로 만들기

    git commit -m "프로젝트 설명 파일 추가"

  4. 생성한 커밋 보기

    git log

커밋 이모저모

  1. 커밋은 '의미 있는 변동사항'을 묶어서 만든다.
  2. 버튼 클릭 버그를 고치는 데 5가지 파일을 수정했다면 그 5가지를 묶어서 하나의 커밋으로 만든다.
  3. 동료 개발자(혹은 미래의 나)가 '버튼 클릭 버그'를 고치는 데 어떤 파일을 수정했는지 손쉽게 파악 가능
  4. 커밋 메세지를 최대한 자세하게 적어주세요.
    나중에 후회하지 않습니다.

원격 저장소 GitHub에서 만들고 커밋 푸시하기

  1. GitHub에 로그인해서 Boxiting 저장소 생성
  2. 내 컴퓨터 boxiting-cat 폴더에 GitHub 저장소 주소 알려주기

    git remote add origin https://github.com/아이디/이름(repo).git

  3. 만든 커밋 푸시하기

    git push origin master

  4. GitHub 사이트에서 올라간 커밋 확인

원격 저장소를 내 컴퓨터에 받아오기: 클론(Clone)

  1. 내 컴퓨터에 boxiting-oct 폴더를 만들고
    GitHub의 Boxiting 저장소 받아오기

git clone https://github.com/아이디/이름(repo).git

  1. app.js 파일 생성 후 add -> commit -> push
  2. GitHub에서 새 커밋 확인하기

Settings -> Manage access에서 collaborator를 추가하면 해당 유저에게 푸시 권한을 줄 수 있다.


Git에서의 커밋이란?

  1. 변경 사항의 모음(X) 하나의 최종 코드 모음(O)
  2. 기존 커밋과 비교해서 변경된 파일이 아니면 '변경되지 않았다.' 고만 저장해서 용량이 무겁지 않다.
    1. (고양이1 파일은 변경되지 않았으니까 3번째 버전에선 완전하게 저장 안하고 '변경되지 않았다.'고만 기록)
    2. SVN은 바로 이전 커밋과의 변경사항만 저장
    3. 그래서 커밋당 용량은 더 가볍지만 한 버전을 보려면 맨 처음 커밋부터 계산해야한다-> 속도 느림
    4. Git은 바로 이전 커밋만 보면 된다. -> 속도 빠름



요약

  1. Git으로 추적하는 파일의 4가지 상태
  2. 작업 공간 (Working directory)에 있는 수정함, 추적 안됨 파일을 스테이지로 올려 스테이지됨으로 변경한다.
  3. 커밋을 하면 수정 없음 상태로 돌아가서 다시 파일을 수정할 수 있다.

평행세계 나누기 - 브랜치(Branch)

여러 줄로 커밋을 쌓는다?

Q. 왜 같이 작업하려면 여러 줄로 커밋을 쌓아야 할까?
A. 한 줄에서 작업하면 충돌이 날 수 있다. 똑같은 코드를 동시에 수정할 가능성이 있다.

Q. 그럼 n줄로 쌓고 나중에 겹치나?
A. 그렇다. 그럼 충돌이 나더라도 합치는 시점에 명시적으로 충돌을 해결할 수 있다.

그래서 나온게 브랜치개념

브랜치 만들기

git branch cat

만든 브랜치로 이동하기

git checkout cat

cat 브랜치에 커밋을 추가하면?

master 브랜치는 아직 과거 커밋을,
cat 브랜치는 새 커밋을 가리킴

master로 이동하고, oct브랜치 만들고, 커밋

master 브랜치의 최신 커밋(고양4)을 기점으로 oct브랜치, cat 브랜치가 나뉘어짐

profile
이름처럼 쉽게 개발 공부를 기록하자. 📝

0개의 댓글