Git 과 GitHub :: Git

lilyoh·2020년 7월 29일
0

1. Installation

Git 은 버전관리시스템(VCS) 이다.
깃을 통해서
1. 프로젝트의 변경 사항을 기록하고
2. 특정 시점의 버전으로 돌아갈 수 있다.

깃 홈페이지에서 버전에 맞는 깃 프로그램을 설치한다.
깃을 사용할 수 있는지 확인하자.

git --version

설치되어 있는 깃 버전을 확인할 수 있다.

1.1 이름과 이메일을 설정하자

git config --global user.name "이름"
git config --global user.email "이메일"

깃에 본인 정보를 등록하기 위해서 이름과 이메일을 설정한다.

2. repositories (저장소)

깃 레퍼지토리는 깃으로 관리하는 프로젝트 저장소이다. (폴더와 같은 개념)
깃 레퍼지토리에는 두 가지 종류가 있다.

  • local repository: 본인의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소
  • remote repository: 내 컴퓨터가 아닌 외부(일반적으로 원격 서버) 버전의 프로젝트 저장소. 이 곳에서 프로젝트 코드를 공유하고, 다른 사람의 코드를 확인한다.
    로컬 버전의 프로젝트와 병합하고 변경사항을 적용할 수 있는 곳이다. (ex. github)

3. Installizing a repository

새 저장소(repository)를 만들고 해당 프로젝트 폴더로 이동한 뒤,
폴더 내에 숨겨진 .git 디렉토리를 생성하자.

git init

이제 깃으로 현재 저장소에 대한 모든 변경사항을 추적/ 관리할 수 있다.
반드시 git 으로 제어할 폴더로 이동한 후에 git init 을 해야한다.
아니면 모든 폴더가 git 의 제어 안에 들어간다.

4. Staging and committing code

깃에서 커밋이란 프로젝트의 현재 상태를 나타내는 체크포인트라고 생각하면 된다.
현재 버전의 코드를 커밋에 저장하는 것이다.

4-1. 레퍼지토리의 현재 상태를 확인하자

git status

어떤 파일이 변경되었는지, 추가되었는지 확인할 수 있다.
해당 명령어를 통해 깃으로 관리되고 있지 않던 파일이 있다면 해당 파일을 staging area 로 추가해줄 수 있다. 커밋을 남기기 위해 staging area 로 추가해줘야 한다.

4-2. staging files

프로젝트 폴더에서 git add 라는 명령어를 통해 원하는 파일들을 스테이지 영역에 추가할 수 있다. 특정 파일만 추가할 때는

git add file.js

여러 개의 파일을 추가할 때는

git add file1.js file2.js file3.js

모든 파일을 한 번에 추가할 때는

git add .

4-3. 커밋을 남기자

커밋은 코드의 스냅샷처럼 커밋을 하게 되면 해당 레퍼지토리의 커밋 기록에 남게 된다.
git add 명령어로 모든 파일을 staging area 에 추가했다면 이제 커밋을 남겨보자.

git commit -m "Commit message"

위의 코드는 'git 을 써서 커밋을 할건데 커밋 메세지는 "Commit message" 야' 라는 뜻이다.
커밋을 남기면 방금 남긴 커밋에 대한 세부 내용이 터미널에 나타난다.

새 커밋을 남기려면 staging area 에 파일을 추가한 다음 커밋을 남기는 프로세스를 반복해야 한다. git status 명령어를 통해 어떤 파일이 수정, 추가 또는 추적되지 않고 있는지 확인할 수 있다.

4-4. 커밋 내역을 보자

프로젝트의 모든 커밋 내역을 보자

git log

각 커밋에 대한 자세한 정보를 볼 수 있다. (작성자, hash 값, 날짜와 시간, 커밋 메세지)
커밋 내역을 확인하고 특정 커밋 시점의 코드로 되돌리고 싶다면 이렇게 하자.

git checkout

커밋 해쉬는 git log 에서 보이는 커밋의 실제 hash 값으로 대체해야 한다.

4-5. git 으로 관리하고 싶지 않은 파일이 있다면

staging area 에 추가하고 싶지 않거나, git 에서 관리하지 않아도 되는 파일이 있다면 .gitignore 파일을 프로젝트 폴더에 생성한다. .gitignore 파일 안에 해당하는 파일명과 폴더명을 나열하면 된다. (항상 줄바꿈을 한다)

.DS_*
.log
logs
**/
.backup.
**/
.back.*
node_modules
bower_components

5. Branches

브랜치는 나뭇가지를 생각하면 된다. 각각의 브랜치를 서로 영향을 받지 않기 때문에 여러 작업을 동시에 진행할 수 있다. 작업 단위(브랜치) 를 남기기 때문에 유지보수에 좋다. 저장소를 처음 만들면 git 은 master 라는 이름의 브랜치를 만든다. 새로운 브랜치를 만들어서 '이제부터 이 브랜치를 사용할거야! 라고 선언(checkout) 하지 않는 이상 계속 master 브랜치에서 커밋을 하게 된다.

5-1. 새로운 브랜치 생성하기

git branch

새로 만들어진 브랜치는 현재 프로젝트의 코드를 그대로 반영해서 생성된다.
보통 코드작업을 할 때는 development 브랜치를 만드는 것이 좋다.
새로운 기능을 개발하고 테스트한 후 버그가 없고, 사용할 준비가 되면 최종으로 master 브랜치에 병합한다.

5-2. 브랜치 전환하기

git checkout

위의 명령어로 새로운 브랜치로 이동할 수 있다.
브랜치 생성과 동시에 새로운 브랜치로 이동하고 싶다면 이렇게 한다.

git checkout -b

프로젝트에 존재하는 모든 브랜치를 확인하고 싶다면 git branch 명령어를 입력하면 된다.

5-3. 브랜치 병합하기

A 브랜치에서 작업한 내용을 B 브랜치에 적용하거나 development 브랜치에서 작업한 내용을 master 브랜치에 적용할 때 병합(merge) 한다.

git merge

5-4. 브랜치 삭제하기

git branch -d

0개의 댓글