Git

백승연·2022년 4월 6일
0

TIL

목록 보기
1/2

Git

  • 분산 버전 관리 시스템 (VCS)
  • 프로젝트 파일의 변경 사항을 추적하는 시스템

Repositories (저장소)

Git으로 관리하는 프로젝트 저장소

  • Local repository - 본인의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소
  • Remote repository - 로컬 repository 와는 반대로 내 컴퓨터가 아닌 외부 (일반적으로 원격 서버) 버전의 프로젝트 저장소. 팀에서 작업 할 때 특히 유용하다. 이 곳에서 프로젝트 코드를 공유할 수 있고, 다른 사람의 코드를 확인할 수도 있다. 또, 로컬 버전의 프로젝트와 병합하고, 변경 사항을 적용 할 수 있는 곳이다.

기본 명령어

  • git init : git 시작 (.git 디렉토리 생성)
  • git status : git 상태 확인
  • git add : 파일 수정 이력 기록 준비
  • git commit : 파일 수정 이력 기록
  • git log : commit 이력 보기

Staging area에 파일 추가하기

프로젝트 폴더에서, git add 라는 명령어를 통해 우리가 원하는 파일들을 staging area 로 추가해줄 수 있습니다.

특정 파일만 추가
git add file.js
여러개의 파일들을 추가
git add file.js file2.js file3.js
모든 파일을 한번에 추가
git add .

커밋 남기기

큰 따옴표 안에 커밋 메세지를 작성
git commit -m "Commit message"

커밋 메시지는 repository에 커밋하는 변경 사항을 설명하는 짧은 summary 여야한다.
위 명령어를 실행하면, 터미널에 방금 남긴 커밋에 대한 세부 내용이 보여지게 된다.

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

커밋 히스토리

프로젝트의 모든 커밋 내역을 보려면
git log
특정 커밋 시점의 코드로 되돌리고 싶다면
git checkout <commit-hash>
<commit-hash> 를 git log 에서 보이는 커밋의 실제 hash 값으로 대체

Ignoring files

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

Branch

  • 독립적으로 어떤 작업을 진행하기 위한 개념
  • 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행
  • 여러 명이서 동시에 작업을 할 때에 다른 사람의 작업에 영향을 주거나 받지 않도록, 먼저 메인 브랜치에서 자신의 작업 전용 브랜치를 만든다. 각자 작업을 진행한 후, 작업이 끝난 사람은 메인 브랜치에 자신의 브랜치의 변경 사항을 적용한다. 이렇게 함으로써 다르사람의 작업에 영향을 받지 않고 독립적으로 특정 작업을 수행하고 그 결과를 하나로 모아 나가게 된다. 이러한 방식으로 작업할 경우 '작업 단위', 즉 브랜치로 그 작업의 기록을 중간 중간에 남기게 되므로 문제가 발생했을 경우 원인이 되는 작업을 찾아내거나 그에 따르 대책을 세우기 쉬워진다.
  • 저장소를 처음 만들면, Git은 바로 'master'라는 이름의 브랜치를 만들어둔다. 이 새로운 저장소에 새로운 파일을 추가 한다거나 추가한 파일의 내용을 변경하여 그 내용을 저장(커밋)하는 것은 모두 'master'라는 이름의 브랜치를 통해 처리할 수 있는 일이 된다.
  • 'master'가 아닌 또 다른 새로운 브랜치를 만들어서 체크아웃 하지 않는 이상, 이 때의 모든 작업은 'master'에서 이루어진다.

브랜치 생성

git branch <new-branch-name>

보통 코드를 개선하고 새로운 실험 기능을 추가하는 등의 작업을 할 수있는 development 브랜치를 만드는 것이 좋다. 새로운 기능을 개발하고 테스트 한 후 버그가 없고, 사용할 준비가 되어있는지 확인한 후 최종적으로 master 브랜치에 병합할 수 있다.

브랜치 전환

다른 브랜치로 이동
git checkout <branch-name>
브랜치 생성과 동시에 생성된 브랜치로 이동하고 싶다면 
기존 checkout 명령어에 -b 라는 flag 를 추가
git checkout -b <new-branch-name>
프로젝트에 존재하는 모든 브랜치를 확인하고 싶다면 
git branch

브랜치 병합

  • A 라는 브랜치에서 작업한 내용을 B 라는 브랜치에 적용하고 싶을 때, 브랜치 A 와 브랜치 B 를 병합(merge)할 수 있다.
  • 특정 브랜치에서 새로운 기능을 완벽하게 구현하고 테스트까지 완료한 시점이면, 기준이 되는 master 브랜치에 구현내용을 적용시켜야 할 때 사용한다.
git merge <branch-name>

브랜치 삭제

조심해서 쓰자...
git branch -d <branch-name>

0개의 댓글