❓ Git이란?
- VCS (Version Control System)의 일종
- 프로젝트의 시간과 차원을 관리
- 시간과 관련된 Control
- 프로그래밍은 계속해서 새로운 버전이 생성됨
- 이전 버전에서 문제가 생겼을 시 해당 버전에 대해 수정 가능
- 차원과 관련된 Control
- 회사에서 프로젝트 진행 시 새로운 기능을 임의로 추가해보고 시도해보고 싶을 때 사용 가능
- 사본을 복사해서 시도한다면 용량 차지 ↑ + 실제로 적용 시 변경사항들을 모두 옮기는데 시간 노력 ↑
- 프로젝트의 내용들을 마치 다른 폴더인 것 처럼 여러 모드로 쉽게 전환 가능
- 시간과 관련된 Control
- 쉽게 말해서 Ctrl+Z와 Ctrl+Y의 기능을 프로젝트 차원에서 제공한다고 보면 됨
- 다만 프로젝트는 여러 작업을 동시에 진행하기 때문에, git은 여러 작업을 진행하고 합치고 충돌을 해결하기 위한 기능을 제공
- ex) 회사에서 새 기능을 만들거나 버그 수정 시 브랜치를 만들고 코드 리뷰 후 메인 브랜치에 머지(merge)하는 방식을 이용
❓ 이용 환경
- Source Tree
- Git을 GUI로 다룰 수 있도록 함
- 시각적으로 잘 나타낼 수 있도록 하는 프로그램
- Git Bash
- git에 대한 명령어를 직접 입력할 수 있도록 하는 명령창
❓ Git 이용 방식 (CLI vs GUI)
- CLI (Command Line Interface)
- 명령줄을 입력해서 사용
- Git Bash를 통해 이용
- Git에서 무언가를 사용하기 위해 어떤 명령을 사용할 때는 CLI 이용
- GUI (Graphical User Interface)
- 일반인 사용자들이 쓰기 편하도록 그래픽 요소를 사용한 인터페이스
- 소스트리같은 프로그램 이용
- 프로젝트의 상태를 Git상에서 자세히 살펴보아야 할 때 이용
❓ 기초 용어 (= 자주 사용되는 Git 용어)
- repository/repo
- Git으로 버전 관리하는 디렉토리를 의미
- local repository
- 로컬 저장소
- 작업자의 개발환경(PC)에 설정된 Git 저장소
- commit
- 특정 상태를 기록한 것, 즉 버전
- branch
- 특정 버전에서 가지치기 또는 갈래를 내 놓은 것
- 즉, 또다른 작업공간을 의미
- merge
- 특정 브랜치에서 작업한 내용을 또 다른 브랜치에 적용
❓ Git의 3가지 영역
- Working Directory
- 내가 작업하고 있는 프로젝트의 디렉토리
- Staging Area
- 커밋을 위해 git add 명령어로 추가한 파일들이 모여있는 공간
- git add로 커밋 파일 추가 시 바로 Repository에 올라가지 않고 Staging Area에 올라감
- Repository
- 커밋들이 모여있는 저장소
- Staging Area에 추가한 파일들을 commit할 경우 최종적으로 도달하는 장소
참조 링크
https://subicura.com/git/guide/
Staging Area 관련: https://iseunghan.tistory.com/322
'Development > Git' 카테고리의 다른 글
[Git_2] 기본 명령어 모음 (git init, git status, git add, git commit) (0) | 2022.10.06 |
---|