Git 은 버전관리시스템(VCS) 이다.
깃을 통해서
1. 프로젝트의 변경 사항을 기록하고
2. 특정 시점의 버전으로 돌아갈 수 있다.
깃 홈페이지에서 버전에 맞는 깃 프로그램을 설치한다.
깃을 사용할 수 있는지 확인하자.
git --version
설치되어 있는 깃 버전을 확인할 수 있다.
git config --global user.name "이름"
git config --global user.email "이메일"
깃에 본인 정보를 등록하기 위해서 이름과 이메일을 설정한다.
깃 레퍼지토리는 깃으로 관리하는 프로젝트 저장소이다. (폴더와 같은 개념)
깃 레퍼지토리에는 두 가지 종류가 있다.
새 저장소(repository)를 만들고 해당 프로젝트 폴더로 이동한 뒤,
폴더 내에 숨겨진 .git 디렉토리를 생성하자.
git init
이제 깃으로 현재 저장소에 대한 모든 변경사항을 추적/ 관리할 수 있다.
반드시 git 으로 제어할 폴더로 이동한 후에 git init
을 해야한다.
아니면 모든 폴더가 git 의 제어 안에 들어간다.
깃에서 커밋이란 프로젝트의 현재 상태를 나타내는 체크포인트라고 생각하면 된다.
현재 버전의 코드를 커밋에 저장하는 것이다.
git status
어떤 파일이 변경되었는지, 추가되었는지 확인할 수 있다.
해당 명령어를 통해 깃으로 관리되고 있지 않던 파일이 있다면 해당 파일을 staging area 로 추가해줄 수 있다. 커밋을 남기기 위해 staging area 로 추가해줘야 한다.
프로젝트 폴더에서 git add 라는 명령어를 통해 원하는 파일들을 스테이지 영역에 추가할 수 있다. 특정 파일만 추가할 때는
git add file.js
여러 개의 파일을 추가할 때는
git add file1.js file2.js file3.js
모든 파일을 한 번에 추가할 때는
git add .
커밋은 코드의 스냅샷처럼 커밋을 하게 되면 해당 레퍼지토리의 커밋 기록에 남게 된다.
git add
명령어로 모든 파일을 staging area 에 추가했다면 이제 커밋을 남겨보자.
git commit -m "Commit message"
위의 코드는 'git 을 써서 커밋을 할건데 커밋 메세지는 "Commit message" 야' 라는 뜻이다.
커밋을 남기면 방금 남긴 커밋에 대한 세부 내용이 터미널에 나타난다.
새 커밋을 남기려면 staging area 에 파일을 추가한 다음 커밋을 남기는 프로세스를 반복해야 한다. git status
명령어를 통해 어떤 파일이 수정, 추가 또는 추적되지 않고 있는지 확인할 수 있다.
프로젝트의 모든 커밋 내역을 보자
git log
각 커밋에 대한 자세한 정보를 볼 수 있다. (작성자, hash 값, 날짜와 시간, 커밋 메세지)
커밋 내역을 확인하고 특정 커밋 시점의 코드로 되돌리고 싶다면 이렇게 하자.
git checkout
커밋 해쉬는 git log
에서 보이는 커밋의 실제 hash 값으로 대체해야 한다.
staging area 에 추가하고 싶지 않거나, git 에서 관리하지 않아도 되는 파일이 있다면 .gitignore
파일을 프로젝트 폴더에 생성한다. .gitignore
파일 안에 해당하는 파일명과 폴더명을 나열하면 된다. (항상 줄바꿈을 한다)
.DS_*
.log
logs
**/.backup.
**/.back.*
node_modules
bower_components
브랜치는 나뭇가지를 생각하면 된다. 각각의 브랜치를 서로 영향을 받지 않기 때문에 여러 작업을 동시에 진행할 수 있다. 작업 단위(브랜치) 를 남기기 때문에 유지보수에 좋다. 저장소를 처음 만들면 git 은 master 라는 이름의 브랜치를 만든다. 새로운 브랜치를 만들어서 '이제부터 이 브랜치를 사용할거야! 라고 선언(checkout) 하지 않는 이상 계속 master 브랜치에서 커밋을 하게 된다.
git branch
새로 만들어진 브랜치는 현재 프로젝트의 코드를 그대로 반영해서 생성된다.
보통 코드작업을 할 때는 development 브랜치를 만드는 것이 좋다.
새로운 기능을 개발하고 테스트한 후 버그가 없고, 사용할 준비가 되면 최종으로 master 브랜치에 병합한다.
git checkout
위의 명령어로 새로운 브랜치로 이동할 수 있다.
브랜치 생성과 동시에 새로운 브랜치로 이동하고 싶다면 이렇게 한다.
git checkout -b
프로젝트에 존재하는 모든 브랜치를 확인하고 싶다면 git branch
명령어를 입력하면 된다.
A 브랜치에서 작업한 내용을 B 브랜치에 적용하거나 development 브랜치에서 작업한 내용을 master 브랜치에 적용할 때 병합(merge) 한다.
git merge
git branch -d