GIT
- 프로그램의 변경사항을 관리하기 위한 시스템
- 프로그램을 구성하는 파일의 변경사항과 변경자 등에 대한 정보를 기록
버전
- 프로그램의 변경사항
- git을 통해 변경 이력을 관리할 수 있음
Repository (레포지터리)
- 파일을 저장하는 저장소로 Remote Repository와 Local Repository로 나뉨
- Remote Repository (원격 저장소)
: Git 서버에 존재하는 저장소
: 프로젝트의 구성원들과 공용으로 저장하는 저장소
- Local Repository (로컬 저장소)
: 개인 컴퓨터 내에 저장된 레포지터리
: Git을 통해 생성되는 저장소로 원격 저장소와 연결되어 동기화
add
- Commit하기 전 로컬 저장소의 파일 수정, 생성, 삭제 등에 대한 변경 내용을
모아놓는 것
Commit
- 프로젝트의 변경 이력을 저장한 것
: 프로젝트내의 파일의 생성과 삭제, 수정 등에 대한 내용을 포함
: 사용자가 저장할때마다 Commit이 생성됨
=> 버전관리와 문제 발생시 복구를 위함
=> 일종의 버전
Stage
- 변경사항을 Commit에 저장하는 것
: add를 통해 모아놓은 변경내용은 Staging Area(index)에 저장 됨
: Staging Area의 내용들 중 원격 저장소에 반영할 변경사항만 선택하여 커밋할 수 있으며
이때 Commit에 저장되는 변경사항은 Stage되어 Commit에 반영된다.
그 외 커밋되지 않는 변경사항은 Unstage한 뒤 Commit하는 방식으로 제외시킨다.
Branch (브랜치)
- 특정 커밋에서 부터 분기되는 포인터
: 커밋을 세부적으로 분기하여 관리하기 위함
Checkout
- 현재 위치한 커밋에서 다른 커밋으로 이동하는 것
: 다른 브랜치 내 커밋이나 같은 브랜치 내 커밋으로 이동 가능
=> 이전 버전으로 되돌아가거나 다른 커밋의 내용 확인
Merge (병합 / 머지)
- 나뉘어진 브랜치를 하나의 브랜치로 합치는 것
: fast-forward와 non fast-forward로 나뉨
- fast-forward
: 서로 다른 두 브랜치를 충돌 없이 자동으로 merge
- non fast-forward
: fast-forward를 통한 병합시에 충돌이 발생 했을때의 merge 방법
: 충돌 기록을 확인하여 코드 수정 후 진행
Clone
- 원격 저장소 내의 파일과 프로젝트에 commit된 히스토리 정보까지 모두 다운로드 하여
PC내에 로컬 저장소를 생성하는 방법
=> 로컬 저장소와 원격저장소를 연결하면서 다운로드
Fork
- 타인의 git 레포지터리에 있는 프로젝트를 자신의 git 레포지터리로 복제하는 기능
: 주로 타인의 프로젝트를 수정하거나 기능을 추가할때 사용
Download ZIP
- 프로젝트 파일만 ZIP으로 압축하여 PC에 저장하는 방법
Push
- 로컬 저장소의 Commit을 원격 저장소에 업로드 하는 것
- Commit의 내용이 원격저장소에 반영 됨
: 로컬 저장소에서 브랜치를 생성하고 push하면 원격 저장소에 해당 브랜치가 생성됨
: 원격 저장소에 만들어진 브랜치에 로컬 저장소에서 Commit을 업로드 할 수 있음
Pull
- 원격 저장소에 반영된 사항들을 로컬 저장소에 반영하는 것
: 원격 저장소의 내용과 로컬 저장소의 내용이 다른 경우 소스파일이 병합되어 로컬 저장소에 반영됨
pull request (PR)
- push 권한이 없는 레포지터리에 commit를 업로드 하는 방법
: pull과 달리 레포지터리에 바로 반영되지 않으며 git의 권한자가 따로 반영을 해야 반영됨
: 주로 Fork를 통해 생성한 레포지터리에서 원본 레포지터리에 Commit를 업로드할때 사용
Git-Flow
- Git 저장소를 체계적으로 관리하기 위한 브랜칭 기법
: 기본적으로 feature, develop, realease, hotfix, master 브랜치로 나누어 관리
: feature (새로운 기능 추가)
: develop (메인 개발 브랜치)
: realease (배포를 위한 브랜치, 준 완성본)
: hotfix (긴급 오류 수정을 위한 브랜치)
: master (최종 완성본)
=> 브랜치 이름을 꼭 위에 나온 것으로 사용하지 않아도 되며,
필요와 목적에 따라 브랜칭 전략을 세워도 됨
레퍼런스
'Devops > DevOps' 카테고리의 다른 글
[데브옵스 개발자 로드맵 2020] 컨테이너 오케스트레이션 (0) | 2021.01.29 |
---|---|
[데브옵스 개발자 로드맵 2020] 컨테이너 (0) | 2021.01.29 |
[데브옵스 개발자 로드맵 2020] CI/CD (0) | 2021.01.29 |
[데브옵스 개발자 로드맵 2020] 데브옵스 툴체인과 과정, 데브옵스 툴 (0) | 2021.01.23 |
[데브옵스 개발자 로드맵 2020] 데브옵스를 위한 기본지식 (1) | 2021.01.22 |