Git 이란
🔥 Git is a **[free and open source](http://git-scm.com/about/free-and-open-source)** distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
- 분산 버전 관리 시스템(DVCS)의 일종
- 깃은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 스냅샷 스트림 기반의 분산 버전 관리 시스템
- 소스 코드를 효과적으로 관리할 수 있게 도와주는 무료 오픈 소프트웨어
- 형상 관리 도구(Configuration Management Tool), 버전 관리 도구
깃의 목적
Git의 기본 기능 : 이력 관리
- Git bash
- Github Desktop
- SourceTree
등을 사용해 다룰 수 있다.
git flow, github flow 란?
- GitHub flow is a lightweight, branch-based workflow
- To follow GitHub flow, you will need a GitHub account and a repository.
-
Create a branch
-
Make changes
-
Create a pull request
-
Address review comments
-
Merge your pull request
-
Delete your branch
GitHub flow - GitHub Docs
- Git-flow에 존재하는 5가지 종류의 브랜치 항상 유지되는 메인 브랜치들(master, develop)과 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)
- master : 제품으로 출시될 수 있는 브랜치
- develop : 다음 출시 버전을 개발하는 브랜치
- feature : 기능을 개발하는 브랜치
- release : 이번 출시 버전을 준비하는 브랜치
- hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치
git flow를 가장 잘 표현한 그림
.gitignore 파일이란?
- git이 관리하지 않을 파일들을 지정해두는 파일
.gitignore
에 원격 저장소에 commit 하고 싶지 않은 내용을 작성해두면 git에서 그 내용을 읽어 해당하는 디렉토리 또는 경로 패턴에 위치한 파일들을 버전관리에서 무시하도록 해준다.
README 파일이란?
- Github에 프로젝트를 올릴 때, 프로젝트에 대한 설명뿐 아니라 사용 방법, LICENSE 등의 내용을 기술하는 파일
- 사용 이유
- 다른 사용자들이 내 오픈소스 프로젝트에 대한 정보를 얻기 위해,
- 해당 프로젝트에 대해 함께 협업하는 동료에게 정보를 주기 위해,
- 나중에 다시 내가 프로젝트를 다시 열었을 때 떠올리기 용이하기 위해
용어 정리
repository
또는 repo
: 저장소 / Git으로 버전 관리하는 디렉토리를 의미
local repository
: 로컬 저장소 / 작업자의 개발 환경(PC)에 설정된 Git 저장소
remote repository
: 원격 저장소 / GitHub 등 외부 서버에 설정된 Git 저장소
commit
: 커밋 / 특정 상태를 기록한 것, 즉 버전을 의미
branch
: 브랜치 / 한국어로 번역하면 가지치기 또는 갈래라고 하는데 또 다른 작업공간을 의미
merge
: 머지 / 한국어로 병합 또는 합치기라고 하는데 특정 브랜치에서 작업한 내용을 또 다른 브랜치에 적용하는 것을 의미
git status
: 파일 상태 확인하기
git diff
: 파일의 변경 내용 살펴보기. 관리되고 있는 파일과 디렉토리 목록 확인 가능
add
: 파일을 새로 추적하기.
push
: local repository의 파일을 remote repository로 올리는 것
pull
: remote repository 파일을 local repository로 내려 받는 것
checkout
: Branch 혹은 Commit 전환 (switch) / 내용 되돌리기 (restore)
log
: Git에서 히스토리를 조회 / 저장소의 커밋 히스토리를 시간순으로 보여줌
깃 repository 내 파일의 LifeCycle
PR(Pull Request)이란?
- Github 에서 제공하는 기능
- 기존 Github 저장소에 보관된 cod base에서 나의 작업으로 변동된 사항을 code base에 merge를 요청하는 것
- 코드 품질 유지를 위해 사용
- 테스트를 진행하거나, 코멘트로 부가 설명을 하거나, 적절히 코드를 쪼개기 등 좋은 PR을 위해 노력하기
참고자료