git add
로 git staging area의 내용을 변경할 수 있다.git add
와 git commit
의 차이점에 대해서 설명할 수 있다.git commit
으로 로컬 깃 리포지토리에 코드 변경점을 기록할 수 있다.git clone
이 원격 깃 리포지토리를 가져온다는 것을 이해한다.git pull
과 git push
에 대해서 이해한다.git pull
과 git push
로 로컬 깃 리포지터리와 원격 깃 리포지토리의 내용을 쉽게 주고받을 수 있다.우선 Git이란 개발자의 코드를 효율적으로 관리하기 위해서 개발된 '분산형 버전 관리 시스템'이다.
그리고 Git에서 코드를 저장하는 공간을 리포지토리라고 한다.
리포지토리는 자신의 컴퓨터의 작업 공간(local)에 위치한 로컬 Git 리포지토리와, Github 등의 원격(remote) 공간에 위치한 원격 리포지토리로 구분할 수 있다.
git init
명령어를 입력하면 된다.index.html
, sytle.css
의 변경사항을 Git으로 관리할 수 있다. 각각의 파일에 코드를 작성한 후, 이 코드를 하나로 모아두는 과정을 거치게 되는데 이 공간을 staging area라고 한다.git status
명령어를 입력한다. 현재 디렉토리에 Git 리포지토리가 잘 설치되어 있다면, 해당 터미널에서 Git 리포지토리의 상태를 확인할 수 있다. 변경이 되었으나 staging area로 옮겨지지 않은 파일은 빨간색 글씨로 표시된다. 변경 사항이 staging area에 잘 옮겨졌다면 해당 터미널에 파일명이 초록색으로 표시된다.git status
명령어로 다시 현재 Git 리포지토리 상태를 확인할 수 있다.- git add <경로명> : 경로에 있는 파일을 staging area로 넣는 명령어
- staging area : 온전히 저장하고 싶은 코드를 모아놓은 묶음
- commit
- staging area의 코드 묶음을 저장하기로 결심하고 (git commit)
- staging area 코드의 용도를 적어두는 행위 (커밋 메시지 -m "commit message")
merge
, rebase
등 기능에 날개를 달아주는 기반이 된다.# Good: 기능(feat) 구현을 확인 가능, 정확한 기술 용어 사용, 짧고 간결함
git commit -m "feat: 인스타 게시글 조회 페이지네이션"
# Bad: 커밋 타입 구분 X, 만연체, 사실 여부를 판단하기 어려운 "효율성"에 대한 코멘트
git commit -m "더 효율적인 인스타 게시글 조회 기능 구현함"
# Very Bad: 어떻게 나은 형식인지 판단하기 어려움, 어떤 기능인지 확인이 어려움
git commit -m "좀 더 나은 형식"
git status
로 staging area의 상태를 확인하는 것이 좋다.git remote add
)<name>
<URL>
git remote add
는 로컬 리포지토리에 원격 리포지토리 주소를 등록하는 명령어이다. 쉽게 원격 리포지토리를 파악하기 위해 이름을 지정해줄 수 있고, 이름 뒤에 원격 리포지토리 주소를 적으면 작동한다.<name>
: 앞으로 로컬 리포지토리에서 원격 리포지토리 주소를 대신할 이름<URL>
: 원격 리포지토리 주소git push
는 로컬 리포지토리에 기록한 내역을 원격 리포지토리로 옮기는 작업이다. git push
는 새롭게 생성한 원격 리포지토리에 기존 커밋 기록을 옮기거나, 기존 원격 리포지토리에서 일부 변경된 내용을 옮기는데 사용할 수 있다.<remote>
<branch>
git push
도 매개변수를 가질 수 있다. <remote>
에는 원격 리포지토리의 이름을 입력하고, <branch>
에는 브랜치 이름을 입력한다.포크는 기존의 잘 만들어진 프로젝트에 변화를 주거나 새로운 것을 시도를 해보기 위해 리포지토리를 복사하는 것을 의미한다. 기존의 프로젝트에 영향을 미치지 않기 때문에 서로의 프로젝트에 영향을 주지 않는다.
또한 라이센스까지 함께 복사가 되기 때문에, 공개되어 있고 라이센스 명시가 제대로 되어있는 프로젝트는 라이센스만 잘 지키면 포크해도 문제가 없다.
보통 Github 원격 리포지토리를 자신의 Github 원격 리포지토리로 포크한다.
git clone
하여 따로 개발하기