- Git은 소프트웨어 개발 시 소스 코드 관리에 널리 사용되는 버전 관리 시스템이다.
- 속도와 데이터 무결성에 중점을 두고 변경 사항을 분기, 병합 및 추적하는 강력한 기능을 제공한다.
- 업계에서 널리 채택된 Git은 비선형 개발을 지원하는 유연성으로 잘 알려져있다.

위 다이어그램은 git환경 내의 주요 공간요소와 명령을 개략적으로 설명하는 순서도이고 로컬 작업 공간과 원격 서버 저장소 간의 상호 작용을 보여준다.
| 구분 | 설명 |
|---|---|
| workspace | 로컬폴더에서 프로젝트 파일을 작업하는 곳으로 파일 수정 시 작업 공간에서 수정된 파일이 인덱스에 추가되지 않으면 작업 공간의 내용이 인덱스의 내용과 일치하지 않게 된다. |
| index | 파일이 임시로 저장되는 캐시공간 즉 스테이징 영역이. 커밋 작업을 수행하면 인덱스에 임시로 저장된 모든 파일이 로컬 저장소에 함께 커밋된다. 그러면 로컬 저장소의 모든 파일이 색인 파일로 대체된다. 인덱스는 git 아키텍처 설계에서 매우 중요한 부분이다. |
| local repository | git은 분산 버전 관리 시스템이다. 원격 서버와 통신하지 않고 완전히 분산된 방식으로 작동할 수 있다. 로그 기록, 커밋, diff를 포함한 모든 오프라인 작업을 로컬에서 수행할 수 있다. 따라서 모든 오프라인 작업은 로컬에서 완료될 수 있으며 필요할 때 원격서버와 상호작용한다. |
| remote repository | 모든 사람이 공유하는 공유 집중식 저장소이다. 로컬 저장소가 원격 저장소와 상호작용해야한다. 원격 저장소의 구조는 일반적으로 로컬 저장소의 구조와 동일하다. |

git init: 새로운 git 저장소를 초기화
git clone [url]: 원격 소스에서 저장소를 복제
git add [file]: 커밋을 위한 단계 변경.
git commit -m "[description]": 준비된 콘텐츠를 새로운 커밋 스냅샷으로 커밋
git status: 변경 상태를 추적되지 않음, 수정됨, 단계적으로 나열
git push [remote] [branch]: 브랜치를 원격 저장소로 푸시
git pull: 원격 저장소에서 변경 사항을 가져옴
git Branch: 현재 활성 브랜치 옆에 별표를 표시하여 브랜치를 나열
git checkout [branch-name]: 다른 브랜치로 전환하고 작업 디렉터리로 체크아웃
git merge [branch]: 지정된 브랜치의 히스토리를 현재 브랜치에 병합합