
Git vs GitHub
- Git : 분산 버전 관리 시스템 = Version Control System(VCS)
- GitHub : Git을 사용하는 프로젝트를 위한 호스팅 서비스
코드 버전 관리를 하는 이유
- 수정할 때마다 파일을 새로 만들면 관리가 힘들기 때문
- 언제든 이전 버전의 코드로 돌아갈 수 있기 때문
- 하나의 프로젝트를 두고 여러명의 개발자들이 협업할 수 있기 때문
Repositories (저장소)
- Git으로 관리하는 프로젝트 저장소
- Local repository : 본인의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소
- Remote repository : 내 컴퓨터가 아닌 외부 (일반적으로 원격 서버) 버전의 프로젝트 저장소
git init
- git 저장소 생성/버전 관리를 위한 정보 생성
- 버전 관리를 하고 싶은 디렉토리에서 해당 명령어 입력
git add
- 파일 수정 이력 기록 준비
- 수정한 파일의 이력을 남길 준비를 하는 명령어
- 특정 파일만 이력을 남기고 싶을 때 :
git add [파일이름]
- 변경된 파일 전체의 이력을 남기고 싶을 때 :
git add .
git commit
- 파일 수정 이력 기록
- 수정한 파일의 이력을 남기는 명령어
- 프로젝트의 현재 상태를 나타내는 체크포인트 또는 스냅샷
- 코드를 커밋하려면 우선 코드를 staging area 에 추가해야 한다
- 한 줄로 커밋 메세지 :
git commit -m “메세지”
- 여러 줄 커밋 메세지 :
git commit
git log
- 남겨진 이력을 확인할 때 사용하는 명령어
- 각 커밋에 대한 자세한 정보(작성자, hash 값, 날짜와 시간, 그리고 커밋 메세지)
git push
- 작성한 코드를 원격 저장소에 업로드
- 이력을 남긴 코드들은 github에 올리고 싶을 때 사용하는 명령어
// 로컬 -> 원격 저장소에 연결
git remote add origin git@github.com:gamangee/test.git
// 확인
git remote
// 로컬 -> 원격 저장소에 올리기
git push origin master
// 연결 끊기
git remote remove origin
git clone
[저장소 주소]
git branch
[브랜치이름]
- 독립적으로 개발을 할 수 있는 공간을 만드는 명령어
git checkout
[브랜치이름]
- 현재 있는 브랜치에서 다른 브랜치로 이동할 때 사용하는 명령어
git pull origin
[브랜치이름]
- github에 있는 특정 브랜치의 코드를 로컬로 가져올 때 사용하는 명령어
git merge
[브랜치이름]
- 로컬에서 현재 브랜치의 코드와 특정 브랜치의 코드를 합칠 때 사용
프로젝트 폴더에 .gitignore
파일을 만드는 이유
staging area 에 추가하고 싶지 않거나 git 에서 관리하지 않아도 되는 파일이 있을 때 사용한다.
파일 형식
파일 안에, 해당하는 파일명과 폴더명을 나열
파일, 폴더가 새로운 줄에 입력
.DS_*
*.log
logs
**/*.backup.*
**/*.back.*
node_modules
bower_components