Git
의 이해Git
을 이용한 버전 관리(Push, Clone, Reset ...)Git은 컴퓨터 파일의 변경사항을 추적하고 여러 사용자들 간에 해당 파일 작업을 조율하기 위한 대표적인 버전 관리 시스템(VCS)이다. 효율적으로 프로젝트를 관리할 수 있는 것이 큰 장점이다.
다음 명령어를 통해 Git
버전을 확인할 수 있다.
$ git --version
VSCode
에서 버전 관리를 하기 위해 처음 한 번 설정이 필요하다.
📌 개행 문자(Newline) 설정
$ git config --global core.autocrlf input
$ git config --global core.autocrlf true
📌 사용자 정보 등록
commit
(버전 생성)을 위한 정보를 등록해야 한다. 되도록이면 Git
가입 시 설정했던 아이디와 맞추는 것이 좋다.
$ git config --global user.name 'NAME'
특히, 이메일은 매칭 용도로 사용되므로 맞추기를 권장한다.
$ git config --global user.email 'EMAIL'
📌 입력된 정보 확인
$ git config --global --list
현재 프로젝트에서 변경사항을 추적한다.
$ git init
$ git status
index.html
)을 지정$ git add index.html
$ git add .
❗ 버전 관리가 필요 없는 파일들은 버전 관리를 선언하지 않아도 된다.
-m
)와 함께 버전 생성프로젝트 생성이라는 버전이 만들어진 것을 확인할 수 있으며, 변경된 부분이 없으므로 파일들은 회색 상태이다.
$ git commit -m '프로젝트 생성'
새로운 파일이 생성된 경우, main.js
를 버전 관리하도록 등록해야 한다.($ git add .
)
이전 버전에서는 main.js
가 있지 않아 기존 프로젝트와 현재 프로젝트는 차이가 생겼다. 새로운 버전을 만들고 싶다면, commit
을 이용한다.
$ git commint -m 'main.js 추가'
다음 명령어를 통해 커밋 히스토리를 조회할 수 있다.
$ git log
현재 버전 관리를 하고 있는 프로젝트를 Git
의 저장소에 업로드 하기 위해 필요한 저장소 주소이다.
통상적으로 원격 저장소 별칭을 origin
사용한다. Git
을 완벽하게 이해하고 사용하는 것이 아니라면 origin
사용을 권장한다.
$ git remote add origin https://github.com/jytrack64/git-practice.git
$ git push origin master
제품으로 출시될 수 있는 브랜치이다.
배포(Release) 이력을 관리하기 위해 사용. 즉, 배포 가능한 상태만을 관리한다.
다음 출시 버전을 개발하는 브랜치이다.
기능 개발을 위한 브랜치들을 병합하기 위해 사용. 즉, 모든 기능이 추가되고 버그가 수정되어 배포 가능한 안정적인 상태라면 develop 브랜치를 ‘master’ 브랜치에 병합(merge)한다.
평소에는 이 브랜치를 기반으로 개발을 진행한다.
기능을 개발하는 브랜치이다.
feature 브랜치는 새로운 기능 개발 및 버그 수정이 필요할 때마다 ‘develop’ 브랜치로부터 분기한다. feature 브랜치에서의 작업은 기본적으로 공유할 필요가 없기 때문에, 자신의 로컬 저장소에서 관리한다.
개발이 완료되면 ‘develop’ 브랜치로 병합(merge)하여 다른 사람들과 공유한다.
signin
이라는 가지(브랜치)를 만들어서 master
브랜치에 영향 없도록 개발한다. 개발이 모두 완료되면 브랜치를 병합(merge
)한다.
git branch
git branch -a
git branch signin
git branch
git checkout signin
배포 툴(Netlify
등..)에서는 master
브랜치에 있는 내용을 가지고 사이트를 만들어준다. 따라서 signin
브랜치에서 어떤 작업을 해도 실제 웹 사이트에는 영향이 없다.
해당하는 주소에 저장소 자체를 복제해서 현재 경로에 새롭게 생성한다.
$ git clone https://github.com/jytrack64/git-practice.git
총 3가지 버전을 생성한 후, Git
을 이용해 이전 버전으로 되돌려보는 예제이다.
바탕화면에 git-practice 폴더를 생성한 후, index.html
파일을 생성하였다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>1</h1>
</body>
</html>
현재 프로젝트에서 버전 관리를 시작할 것이므로 $ git init
을 입력한다.
$ git init
상태를 확인해보면 변경사항을 추적 중인 상태가 아님을 알 수 있다.
$ git status
변경사항을 추적하기 위해 $ git add .
을 입력한다.
$ git add .
버전을 생성하고,
$ git commit -m '1'
$ git log
를 통해 버전이 제대로 생성되었는지 확인할 수 있다.
$ git log
위와 같은 방법으로 <h1>
의 내용을 각각 2, 3으로 바꾸고 두 버전을 추가로 생성하였다.
이때 최신 버전(3)에서 가장 처음 생성했던 버전(1)으로 돌아가기 위해서는 $ git reset --hard HEAD~n
명령어를 사용한다. HEAD
는 가장 최신 버전을 의미하고, ~n
은 최신 버전으로부터 뒤로 n번째에 있는 버전으로 되돌아 가는 것을 의미한다.
$ git reset --hard HEAD~2
만일 버전 되돌리기가 잘못되었다면 다음 명령어를 입력하기 전까지 한 번 원상복구 할 수 있다.
$ git reset --hard ORIG_HEAD