분산형 버전 관리 시스템인 Git과 Git의 저장소인 Github에 대해 기초적인 용어들과 그 용어들을 설명하면서 git에 대해 개념을 잡아보도록 하겠습니다.
깃 (Git)
소개
Git이란 소스를 효율적으로 관리하기 위해 개발된 분산형 버전 관리 시스템 으로 분산형이란 여러 사람이 작업 가능하고 소스가 수정, 추가 될 때마다 버전을 저장할 수 있다는 말입니다. Git 의 기능을 활용하기 위해서 git 저장소 (git repository) 가 필요하고 대표적인 무료 git 저장소가 바로 Github 입니다.
깃허브 (Github)
위치
가장 기본적인 파일의 흐름은 워크스페이스에서 원격저장소로 소스를 올리는 과정입니다.
워크스페이스 - 내 PC에서 작업한 파일이 바로 저장되는 장소
스테이지 영역 - 커밋할 변경이력이 임시로 저장되는 위치
로컬 저장소 (Local Repository) - 개인 PC 저장소로 워크스페이스와 구분 필요.
원격 저장소 (Remote Repository) - Github 서버
Workspace - > Remote Repository
위에서 살펴본 저장위치는 아래와 같은 명령을 통해서 이동합니다.
add (워크스페이스 -> 스테이지 영역) - 워크스페이스 파일의 이력을 스테이지 영역에 추가
commit (스테이지 영역 -> 로컬저장소) - 인덱스에 기록된 변경이력을 로컬 저장소에 저장
push (로컬 저장소 -> 원격저장소) - 로컬 저장소에 저장된 변경이력을 원격 저장소에 업로드
Remote Repository -> Workspace
반대로, 원격저장소에서 변경이력을 가져오는 과정입니다. 소스를 혼자 작업할 수도 있지만 분산형이기 때문에 여러 사람이 작업하는 경우 다른 사람이 변경한 내용을 가져와야겠죠?
fork - 다른 사람이 만든 프로젝트의 원격 저장소를 내 원격 저장소로 가지고 오는 작업
clone (원격저장소 -> 워크스페이스) - 나의 원격저장소를 내 로컬 컴퓨터로 가져오는 작업
pull (원격저장소 -> 워크스페이스) - 원격 저장소의 다른 사용자에 의한 변경이력을 워크스페이스에 반영합니다. pull 하지 않고 워크스페이스에서 수정된 파일을 push 하면 거부됩니다.
fetch (원격저장소 -> 로컬저장소) - 변경 이력을 확인만 하고 워크스페이스의 데이터와 merge하지 않을 경우
브랜치와 포크
브랜치 (Branch)
브랜치라는 기능은 원격저장소의 파일을 여러 버전을 병렬적으로 수정할 수 있습니다. 여러 사용자가 하나의 파일을 동시에 수정하고 원격저장소 파일에 merge 하는 방법입니다.
포크 (Fork)
원격저장소에 있는 다른 사용자의 파일을 내 저장소로 가져와 임의로 수정할 수 있는 기능입니다. 수정한 코드가 가져온 다른 사용자의 코드보다 좋다고 생각해 다른 사용자에게 요청하고 수락한 경우 코드가 수락됩니다.
지금까지 간단하게 수정된 소스 파일의 위치에 따라 git 의 개념에 대해 설명드렸습니다. 다음 시간에는 깃의 명령어들을 사용하는 방법들과 개발툴을 이용한 깃 사용법에 대해 소개해 드리겠습니다.
관련포스트 |
VScode | 깃허브 (Github) 쉽게 연동하기 |
버전관리 | Github (깃허브) 사용법 |
버전관리 | Git |
버전관리 | SourceTree |
'컴퓨터공학 > 개발환경' 카테고리의 다른 글
인텔리제이 (IntelliJ) 설치 및 기본 사용법 (1) | 2025.04.04 |
---|---|
이클립스 다운로드 및 설치, 스프링부트 개발 환경 설정 (1) | 2025.04.02 |
이클립스 (Eclipse) 기본 사용법과 퍼스펙티브 (4) | 2025.03.31 |
스프링 툴 스위트 (STS : Spring Tool Suite) 소개 (2) | 2025.03.17 |
VScode | 확장 프로그램 (Extension) 추천 (3) | 2025.02.27 |
JAVA | 자바 개발 환경 설정 (비주얼 스튜디오 코드) (4) | 2025.02.17 |
IDE | 통합개발환경 종류와 특징 (5) | 2025.02.13 |
JAVA | 자바 생태계 (플랫폼, 프레임워크, JDK) (5) | 2025.02.10 |
댓글