Git에서 코드를 저장하는 공간을 리포지토리라고 합니다. 리포지토리는 자신의 컴퓨터의 작업 공간(local)에 위치한 로컬 Git 리포지토리와, Github 등의 원격(remote) 공간에 위치한 원격 리포지토리로 구분할 수 있습니다.
파일의 변경사항을 Git이 관리하도록 해주는 명령어.
git init
을 원하는 폴더에 입력하면 Git리포지토리가 생성된다.
이제 로컬 환경의 디렉토리에 Git리포지토리가 생성되었기 때문에 변경사항을 Git으로 관리할 수 있다. 각각의 코드를 작성한 후, 이 코드를 하나로 모아두는 과정을 거치게 되는데 이 공간을 staging area
라고 한다.
git add
를 사용하면 로컬의 untracked file을 staging area로 추가할 수 있다.
git add index.html
git add style.css
또는
git add . //변경이 감지된 모든 파일을 한 번에 추가한다.
git status
를 사용하면 staging area에 저장 되었는지 확인할 수 있다.
변경사항이 있지만 저장이 안된 파일은 빨간색으로, 정상적으로 저장이 된 파일은 초록색으로 표시된다.
staging area에 있는 파일은 commit이 가능하다.
staging area는 용도에 맞게 물건들을 정리해둔 무빙박스와 같고, commit은 이 무빙박스에 어떤 용도의 물건인지 판별할 수 있는 코멘트를 라벨링하는 동작을 말한다.
늘 commit하기 전에 git status로 staging area의 상태를 확인하는 것이 좋다. commit하고자 하는 파일 모두가 staging area에 있다면 commit을 해준다.
git commit -m"feat: 인스타 게시글 조회 페이지네이션"
git log
git branch
git reset HEAD^
원격 Git 리포지토리(줄여서 원격 리포지토리)는 자신의 컴퓨터(로컬 환경) 작업 공간에 위치하지 않는 Git 리포지토리다. 개발에 대해서 검색해보면 쉽게 접할 수 있는 Github의 여러 리포지토리가 대표적인 원격 리포지토리이다. 공개된 Git 리포지토리의 경우, 여러 사람이 함께 공유 가능하다.
Github 홈페이지 왼쪽 상단의 New버튼을 클릭한다.
원격 리포지토리를 다루기 위한 git 명려어이다.
로컬 리포지토리에 원격 리포지토리 주소를 등록하는 명령어이다. 쉽게 원격 리포지토리를 파악하기 위해 이름을 지정해줄 수 있고, 이름 뒤에 원격 리포지토리 주소를 적으면 작동한다.
git remote add <name><url>
//<name>: 앞으로 로컬 리포지토리에서 원격 리포지토리 주소를 대신할 이름 (ex: origin)
//<URL>: 원격 리포지토리 주소 (ex: git@github.com:codestates-seb/agora-states-fe.git )
이후 git remote -v
명령어로 원격 리포지토리가 잘 연결되었는지 확인한다.
리모트 리포지토리가 잘 연결되었는지 확인할 때 사용한다.
git push
는 로컬 리포지토리에 기록한 내역을 원격 리포지토리로 옮기는 작업이다.
git push <remote> <branch>
<remote>
에는 원격 리포지토리의 이름을 입력하고, <branch>
에는 브랜치 이름을 입력한다.
예를 들어, 로컬 리포지토리의 기록을 원격 리포지토리 origin의 main 브랜치로 push한다면 git push origin main
을 해준다.
git pull <remote> <branch>
리모트 리포지터리의 작업물을 내 로컬로 받아올 때 사용한다.
특정 commit 시점으로부터 각기 다른 commit을 만들면, 기본적으로 자동으로 merge가된다.
포크는 기존의 잘 만들어진 프로젝트에 변화를 주거나 새로운 것을 시도를 해보기 위해 리포지토리를 복사하는 것을 의미한다. 기존의 프로젝트에 영향을 미치지 않기 때문에 서로의 프로젝트에 영향을 주지 않는다. 또한 라이센스까지 함께 복사가 되기 때문에, 공개되어 있고 라이센스 명시가 제대로 되어있는 프로젝트는 라이센스만 잘 지키면 포크해도 문제가 없다. 보통 Github 원격 리포지토리를 자신의 Github 원격 리포지토리로 포크한다