WEB🔨/기타

처음 배우는 Git & GitHub

최문경 블로그 2021. 6. 15. 15:49

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

 

 

소개

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

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

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

 

 

사전 조사

  1. 버전 관리가 무엇인지 모른다.
  2. 버전 관리가 무엇인지 들어보기만 했다.
  3. Git 기본 기능을 써봤다. (commit, push, pull, merge, branch)
  4. Git의 동작 원리를 알고 있다. (로컬 저장소, 스테이지, diff... )
  5. Git 심화 기능을 써봤다. (rebase, cherry-pick, reset, revert, git-flow)

1`. GitHub을 써봤다. (fork, pull request, code review)

 

 

버전 관리가 뭔가요

버전 관리 시스템: Git

코딩할 때 단순히 crtl + z 를 눌러 이전 상태로 되돌리는 것이 아니라, 원하는 시점마다 깃발을 꽂고 (버전을 만들고) 이들 간에 자유롭게 돌아다닐 수 있습니다. 그리고, 내가 만든 버전뿐 아니라 동료가 만든 버전으로 이동할 수 있고, 동료와 내 버전을 비교해서 최신 본으로 코드를 업데이트할 수 있습니다.

 

 

Git을 사용하는 두 가지 방법


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

진유림님은 대부분의 경우 GUI를 사용하신다고 한다. (개발자마다 선호하는 방식이 다르다고 한다.)

 

 

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 init 명령어를 입력하니 Git repository가 초기화되었다고 나타나고 .git이 생긴 것을 확인할 수 있다.

 

 

버전 생성 실습

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 저장소 주소 알려주기

✅ origin이라는 이름으로 다음과 같은 주소에 원격 저장소를 만들겠다.

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

3. 만든 커밋 푸시하기

✅ origin 원격 저장소의 master branch에 커밋을 올려주세요.

git push origin master

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

 

 

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

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

맨 뒤에 .(점)을 붙이지 않으면 원격 저장소 폴더 자체를 가져오는 것이고, 붙이면 원격 저장소 안의 내용들을 가져온다.

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

2. app.js 파일 생성 후 add -> commit -> push

3. GitHub에서 새 커밋 확인하기

 

 

원격 저장소의 데이터 가져오기: 풀(Pull)


git pull origin master


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

 

 

궁금점

  1. 커밋 객체에는 무엇이 저장되나요?
  2. 두 사람이 병렬로 커밋을 만들고 싶으면 어떡하나요?
  3. 두 사람이 만든 버전을 합칠 수 있나요?
  4. 남이 만든 오픈소스에는 어떻게 기여할 수 있나요?

 

 

앞으로 배울 내용

  1. Git GUI인 소스트리로 로컬 저장소 추가하기
  2. Add와 Commit이 무엇인지 스테이지 개념과 함께 이해하기
  3. 브랜치(Branch)로 평행세계 나누기
  4. 머지(Merge)로 두 브랜치 합치기
  5. 두 브랜치가 충돌(Conflict)났을 때 해결하기
  6. 예의 바른 병합 요청(Pull request) 보내기
  7. 남의 저장소 통째로 복제하기: 포크(Fork)

 

 

그림으로 배우는 Add와 Commit









 

 

Git에서의 커밋이란?

  1. 변경 사항의 모음(X) 하나의 최종 코드 모음(O)
  2. 기존 커밋과 비교해서 변경된 파일이 아니면 '변경되지 않았다.' 고만 저장한다. (고양이1 파일은 변경되지 않았으니까 3번째 버전에선 완전하게 저장 안 하고 '변경되지 않았다.'고만 기록) (용량이 무거워지지 않음)

 








 

 

요약

1. Git으로 추적하는 파일의 4가지 상태

2. 작업 공간 (Working directory)에 있는 수정함, 추적 안됨 파일을 스테이지로 올려 스테이지됨으로 변경한다.

3. 커밋을 하면 수정 없음 상태로 돌아가서 다시 파일을 수정할 수 있다.

 

 

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





 

 

 

브랜치 만들기

git branch cat

 

 

만든 브랜치로 이동하기

git checkout cat




 

두 버전 합치기: 머지(Merge)





 

합치다가 충돌이 났어요: 컨플릭트(conflict)






 

저장소를 통째로 복제하기: 포크(fork)






 

내 코드를 머지해주면 안 되겠니?: 풀 리퀘스트







'WEB🔨 > 기타' 카테고리의 다른 글

라이브러리 vs 프레임워크  (0) 2021.01.13
특정 PORT 강제로 종료시키는 방법  (0) 2020.12.22