이 글은 코드프레소 Java 웹 개발 체험단 활동 중 실무자가 알려주는 Git입문 강좌를 기반으로 작성하였습니다.
코드프레소 URL: https://www.codepresso.kr/
Git 이란?
협업도구, 소스의 버전관리 (형상관리) tool, 무료 소스 관리 시스템이다.
Git을 활용하여, 로컬에서 자신의 개발 소스에 대한 섬세한 관리가 가능하고, Remote Repository(원격 저장소)에 영구적인 백업과, 다양한 협업이 가등하도록 지원하는 기능을 가리킨다.
Git의 대표적인 서비스를 지원하는 회사로 GitHub와 GitLab이 있다.
Git의 목표
- 빠른 속도
- 단순한 구조
- 비선형적인 개발 (수천 개 동시 다발적인 병렬 개발과 공유)
- 완벽한 분산
- Linux 커널과 같은 대규모 프로젝트에 유용
Git 이해를 위한 기본 용어
1. 원격 저장소(Remote Repository)와 로컬 저장소(Local Repository)
2. 클론(Clone)
원격저장소의 소스코드를 로컬저장소로 복사하는 과정
작업 디렉토리(Working Directory)
- PC에서 현재 작업중에 있는 디렉토리
- Git에서 관리는 하지만, 추적은 하지 않음
스테이징 영역(Staging Area)
- 작업한 내용이 올라가는 임시 저장 영역
- git에 의해 변경점 추적 관리되는 영역, 즉 커밋을 준비하는 영역이다.
로컬저장소(Local Repository)
- 커밋들이 영구적으로 저장되는 영역
- 원격저장소로 부터 clone한 커밋들이 존재하는 영역
커밋(Commit)
- Git에서 가장 의미있는 변경의 단위
- 변경의 단위는 개발자마다 조직마다 모두 다르다.
- "커밋하다" - 변경점을 로컬 저장소로 저장하는 과정
git 기본 플로우
- 원격저장소의 소스코드를 다운로드해서(clone)
- 작업 디렉토리에서 작업한 내용을
- 스테이지 영역에 추가해서(add)
- 의미있는 변경점이 쌓이면
- 최종적으로는 커밋을 만들어(commit)
- 로컬 저장소에 영구적으로 저장한다.
Pull
원격저장소에 있는 다른 개발자의 커밋들을 받아온다.
Push
로컬저장소에서 만든 커밋을 원격저장소로 업로드 한다.
Git의 기본 개념 - 실습
GitBash 실행
기본 환경 설정
폴더 생성
GitHub
- https://github.com
- 오픈소스 프로젝트로 협업하는 경우 무료
- Private 저장소로 운영하는 경우 유료
- 전세계 개발자들이 하나의 프로젝트 개발하는 것이 가능한.
- 오픈소스 프로젝트 생태게 확장에 기여
GitLab
로컬저장소 생성
로컬저장소 초기화
(1) Git의 핵심 폴더인 .git 폴더가 생성
(2) master라는 기본 브랜치가 생성
.git 폴더
Git은 .git 폴더를 통해 해당 프로젝트에서 변경되는 파일들에 대해 추적/관리를 할 수 있음
원격저장소와 연결하기
- 원격저장소를 origin 이름으로 연결
- 현재 등록된 원격저장소의 상세 정보 확인