개발을 하면서 소스코드 관리를 위한 형상관리 Tool
프로젝트를 진행하면서 빈번하게 발생하는 최신판의 소스코드를 관리 하기 위해 등장한 도구
리눅스 커널 프로젝트를 위한 버전 관리 시스템으로 개발하였으며, SVN, P4(Perforce)와 같은 형상관리도구
■ Git 특징
① 소스코드 주고받기가 필요없음
② 같은 파일을 여러명이 동시에 작업할수 있어 동시 작업이 가능해짐
③ 버전관리가 용이해져 생산성 증가
④ 클라이언트-서버 모델
- 하나의 중앙 서버가 존재, 클라이언트들은 맡은 파트만 가져와 작업하고 다시 중앙으로 통합
⑤ 분산모델
- 하나의 중앙 서버가 존재하지만 각자의 컴퓨터 저장소에 중앙서버 전체의 사본을 가지고 작업
⑥ 인터넷이 연결되지 않은 곳에서도 개발을 진행할수 있음
■ Git 작업
■ Git 용어
① 저장소 (Repository)
소스코드가 저장되어 있는 여러 개의 브랜치(branch)들이 모여 있는 디스크상의 물리적 공간
로컬 저장소 (Local Repository), 원격 저장소 (Remote Repository)
작업을 시작할 때 원격 저장소에서 로컬 저장소로 소스코드를 복사해서 가져오고(Clone), 이후 소스코드를 변경한 다음 커밋(Commit)을 합니다. 커밋한 소스는 로컬 저장소에 저장되며, 푸시를 하기 전에는 원격 저장소에 반영되지 않음
② 체크아웃 (Checkout)
특정 시점이나 브랜치의 소스코드로 이동하는 것을 의미합니다. 체크아웃 대상은 브랜치, 커밋, 그리고 태그입니다. 체크아웃을 통해 과거 여러 시점의 소스코드로 이동할 수 있습니다
③ 스테이지 (Stage)
작업한 내용이 올라가는 임시 저장 영역입니다. 이 영역을 이용하여 작업한 내용 중 커밋에 반영할 파일만 선별하여 커밋을 수행할 수 있습니다.
④ 태그 (Tag)
커밋의 임의 위치에 쉽게 찾아갈 수 있도록 붙여놓은 이정표를 태그라 합니다. 태그가 붙여진 커밋은 Commit ID 대신 태그명을 입력하여 쉽게 체크아웃 할 수 있습니다.
⑤ 푸시 (Push)
로컬 저장소의 내용 중 원격 저장소에 반영되지 않은 커밋을 원격 저장소로 보내는 과정입니다.
⑥ 풀 (Pull)
푸시와 반대로 원격 저장소에 있는 내용 중 로컬 저장소에 반영되지 않은 내용을 가져와서 로컬 저장소에 저장하는 과정을 의미합니다.
⑦ 브랜치 (Branch)
커밋을 단위로 구분된 소스코드 타임라인에서 분기해서 새로운 커밋을 쌓을 수 있는 가지를 만드는 것
⑧ 병합 (Merge)
브랜치와 반대되는 개념으로, 하나의 브랜치를 다른 브랜치와 합치는 과정을 의미합니다.
'IT' 카테고리의 다른 글
Spring boot란? (0) | 2021.11.18 |
---|---|
Git 사용법 (0) | 2021.11.12 |
Apache Spark란? (0) | 2021.11.08 |
Cookie vs Local Storage vs Session Storage (0) | 2021.11.05 |
ELK stack이란? (0) | 2021.11.05 |
댓글