코드스테이츠 프론트엔드 부트캠프 - Day 18

정우시·2022년 7월 17일
1

2. 코드스테이츠

목록 보기
20/52

[SEB FE] Section 1

Unit12 - Coz’ Mini Hackathon

  • Git으로 협업하기

학습목표

  • 일반 디텍터리와 깃 리포지토리와의 차이점에 대해 설명할 수 있다.
  • git staging area에 대해서 설명할 수 있다.
  • git add로 git staging area의 내용을 변경할 수 있다.
  • git addgit commit의 차이점에 대해서 설명할 수 있다.
  • git commit으로 로컬 깃 리포지토리에 코드 변경점을 기록할 수 있다.
  • 로컬 깃 리포지토리와 원격 깃 리포지토리 github 차이점에 대해 설명할 수 있다.
  • git clone이 원격 깃 리포지토리를 가져온다는 것을 이해한다.
  • git pullgit push에 대해서 이해한다.
  • git pullgit push로 로컬 깃 리포지터리와 원격 깃 리포지토리의 내용을 쉽게 주고받을 수 있다.

Local Git repository 튜토리얼

로컬 Git 리포지토리(Repository)란?

  • 우선 Git이란 개발자의 코드를 효율적으로 관리하기 위해서 개발된 '분산형 버전 관리 시스템'이다.

  • 그리고 Git에서 코드를 저장하는 공간을 리포지토리라고 한다.

  • 리포지토리는 자신의 컴퓨터의 작업 공간(local)에 위치한 로컬 Git 리포지토리와, Github 등의 원격(remote) 공간에 위치한 원격 리포지토리로 구분할 수 있다.

git init

작업 공간에 local Git repository를 생성한다.

  • 일반적인 폴더에 Git repository를 추가하면 개발자는 Git을 이용하여 자신의 프로그램 버전 관리를 할 수 있다. Git repository를 추가하기 위해서는 git init 명령어를 입력하면 된다.

git add

Untracked files를 Staging area로 추가해서 Git의 관리하에 둠

  • 로컬 환경에 있는 디렉토리에 Git 리포지토리가 생성되었다면 이제 index.html, sytle.css의 변경사항을 Git으로 관리할 수 있다. 각각의 파일에 코드를 작성한 후, 이 코드를 하나로 모아두는 과정을 거치게 되는데 이 공간을 staging area라고 한다.

git status

staging area로 잘 옮겨졌는지 확인하는 명령어

  • staging area로 잘 옮겨졌는지 확인하기 위해서는 git status 명령어를 입력한다. 현재 디렉토리에 Git 리포지토리가 잘 설치되어 있다면, 해당 터미널에서 Git 리포지토리의 상태를 확인할 수 있다. 변경이 되었으나 staging area로 옮겨지지 않은 파일은 빨간색 글씨로 표시된다. 변경 사항이 staging area에 잘 옮겨졌다면 해당 터미널에 파일명이 초록색으로 표시된다.

Git 리포지토리 변경 사항 파악하기

  • staging area에 위치한 파일 내용이 추가로 변경된 경우, git status 명령어로 다시 현재 Git 리포지토리 상태를 확인할 수 있다.

git commit

  • staging area에 있는 파일은 commit이 가능하다.
- git add <경로명> : 경로에 있는 파일을 staging area로 넣는 명령어
- staging area : 온전히 저장하고 싶은 코드를 모아놓은 묶음
- commit
	- staging area의 코드 묶음을 저장하기로 결심하고 (git commit)
    - staging area 코드의 용도를 적어두는 행위 (커밋 메시지 -m "commit message")

commit의 원칙

  • commit은 작은 단위로 자주 하는게 좋다. Git commit 기록이 상세하게 되어있으면 아래와 같은 장점이 있다.
    • 코드를 잘못 적는 경우에, 이전 기록을 더 쉽게 복원할 수 있다.
    • 누가 해당 코드를 수정했는지 쉽게 파악할 수 있다.
    • merge, rebase등 기능에 날개를 달아주는 기반이 된다.
  • commit 메시지는 짧고 간결하게 사실적으로 작성한다. Git commit 메시지는 동료 개발자가 참고할 수 있기에 짧고 간결하고 사실적이여야 한다.
# Good: 기능(feat) 구현을 확인 가능, 정확한 기술 용어 사용, 짧고 간결함
git commit -m "feat: 인스타 게시글 조회 페이지네이션"

# Bad: 커밋 타입 구분 X, 만연체, 사실 여부를 판단하기 어려운 "효율성"에 대한 코멘트
git commit -m "더 효율적인 인스타 게시글 조회 기능 구현함"

# Very Bad: 어떻게 나은 형식인지 판단하기 어려움, 어떤 기능인지 확인이 어려움
git commit -m "좀 더 나은 형식"

Staging area란?

Commit 하기 전에 내용을 기록하는 장소

  • 늘 commit하기 전에 git status로 staging area의 상태를 확인하는 것이 좋다.

원격 Git 리포지토리란?

  • 원격 Git 리포지토리(줄여서 원격 리포지토리)는 자신의 컴퓨터(로컬 환경) 작업 공간에 위치하지 않는 Git 리포지토리이다. 개발에 대해서 검색해보면 쉽게 접할 수 있는 Github의 여러 리포지토리가 대표적인 원격 리포지토리이다. 공개된 Git 리포지토리의 경우, 여러 사람이 함께 공유 가능하다.

원격 Git 리포지토리 다루기

  1. Github에서 원격 리포지토리를 생성한다.
  2. 로컬 리포지토리에 원격 리포지토리 git url을 등록한다. (git remote add)
  3. 로컬 Git repository에 기록한 내역을 원격 Git repository에 push한다. (git push)

git remote add <name> <URL>

  • git remote add는 로컬 리포지토리에 원격 리포지토리 주소를 등록하는 명령어이다. 쉽게 원격 리포지토리를 파악하기 위해 이름을 지정해줄 수 있고, 이름 뒤에 원격 리포지토리 주소를 적으면 작동한다.
    • <name>: 앞으로 로컬 리포지토리에서 원격 리포지토리 주소를 대신할 이름
    • <URL>: 원격 리포지토리 주소

git push

  • git push는 로컬 리포지토리에 기록한 내역을 원격 리포지토리로 옮기는 작업이다. git push는 새롭게 생성한 원격 리포지토리에 기존 커밋 기록을 옮기거나, 기존 원격 리포지토리에서 일부 변경된 내용을 옮기는데 사용할 수 있다.

git puch <remote> <branch>

  • 다른 CLI 명령어처럼, git push도 매개변수를 가질 수 있다. <remote>에는 원격 리포지토리의 이름을 입력하고, <branch>에는 브랜치 이름을 입력한다.

Fork

Fork란?

  • 포크는 기존의 잘 만들어진 프로젝트에 변화를 주거나 새로운 것을 시도를 해보기 위해 리포지토리를 복사하는 것을 의미한다. 기존의 프로젝트에 영향을 미치지 않기 때문에 서로의 프로젝트에 영향을 주지 않는다.

  • 또한 라이센스까지 함께 복사가 되기 때문에, 공개되어 있고 라이센스 명시가 제대로 되어있는 프로젝트는 라이센스만 잘 지키면 포크해도 문제가 없다.

  • 보통 Github 원격 리포지토리를 자신의 Github 원격 리포지토리로 포크한다.

포크 후 할 수 있는 일

  • 자신의 컴퓨터의 로컬 리포지토리로 git clone하여 따로 개발하기
  • public 프로젝트에 버그 수정 및 기능 추가 요청 (push & pull request)
  • public 프로젝트에서 새로 업데이트 된 내용을 pull
profile
프론트엔드 공부하고 있는 정우시입니다.

0개의 댓글