git과 github
git: 소스 코드의 버전 관리 시스템
- 일반적으로 로컬 시스템에서 작동
github: git 사용자들의 소셜 네트워크 플랫폼
- 일반적으로 리포지토리를 호스팅하는 웹 서비스를 통해 프로젝트 협업을 위해 사용
git 기능
- Branching: 한 버전을 파생하는 기능, branch를 여러 개 생성
- Merging: 버전이 파생됬다가 합쳐짐, 여러 개의 branch 하나로 merge
- 분산 시스템: 여러 개의 별도의 시스템이 하나로 합쳐지는 분산 시스템의 일종
- 데이터 보증: 여러개의 repository를 가지고 있음
- Staging area: 변경 사항을 그룹화하여 하나의 commit으로 생성
주요 용어
Repository
소스 코드와 버전에 따라 생기는 변경사항이 저장되는 공간, 즉 저장소 전체
- 동그라미 하나를 commit 이라고 부름
- commit log: 변경 사항
- 특정 버전에 따라 변경 사항이 발생하면 무엇을 변경했는지 log를 남겨야함
- coventional commit: 커밋 메시지 best practice를 볼 수 있음

Branching and Merging
branching: 기존의 repository에서 새로운 버전을 분기해서 만드는 것
- 새로운 기능을 추가할때 branch를 생성하여 독립적으로 작업을 가능하도록 함
merging: 두개의 branch의 변경사항을 하나로 합치는 것
- develop branchd에서 새로운 기능이 완성되면 master branch에 merge
master(main), develop, feature로 branch를 생성하는 branch 전략
- master: 가장 배포에 안정화된 버전 또는 실제로 서비스를 위한 버전
- develop: 개발 버전을 버전
- 개발 버전이 어느정도 안정화가 되면 master 버전과 merge
- feature: 개발 중 특정 기능을 만드는 버전
- 특정 기능을 개발되면 develop branch에 merge

Distributed
각 사용자마다 repository를 로컬 또는 원격에서 독립적으로 버전 관리를 할 수 있음
- 개발자마다 프로젝트의 repository의 복사본을 가지고 있으며, 각자의 task에 따라 버전을 관리
fork: repository를 나의 github 계정의 remote repository로 복사해옴
- 소유자도 자기 자신이 됨
- commit log도 그대로 가져옴
- 원격 → 원격
clone: 내 local repository(컴퓨터 저장소)로 repository로 가져옴
- 원격 → 내 컴퓨터

Push and Pull
push: local repository의 변경 사항을 remote repository에 반영
origin: git clone 시 기본적으로 설정되는 remote repository의 alias

pull: remote repository의 변경 사항을 local repository에 받아옴

'DevOps > Git' 카테고리의 다른 글
[Git] Github Actions으로 투표 앱 EC2에 배포하기 (0) | 2024.12.29 |
---|---|
[Git] GitHub Actions 사용해보기 (0) | 2024.12.29 |
[Git] fork & branch (0) | 2024.11.22 |
[Git] local repository와 remote repository의 변경사항이 충돌하는 경우 (0) | 2024.11.19 |
[Git] Git 설치하기 & repository 사용하기 (0) | 2024.11.19 |