리누스 토르발스가 개발했으며 분산형 저장소로 소스를 관리(이력, 소스 Merge, 롤백 등...)해주어서 협업시 작업 후 올리기만 하면 알아서 합쳐지고 추후에는 배포하는 과정까지 같이 이용하게끔 할 수 있다
📝GitHub
마이크로소프트의 Git 플랫폼으로 웹에서 Git에서 명령어를 입력해야 볼 수 있는 이력, 관리에 프로젝트 협업 기능까지 넣은 플랫폼이다
📝Git Workflow
Git의 동작은 총 4가지로 이루어져있다
Working Directory
작업할 파일이 있는 디렉토리 즉, 로컬에서 내가 하고 있는 현재 프로젝트
Staging Area
커밋(commit)을 수행할 파일들이 올라가는 영역 [모든 변경사항을 관리하며 어떤 변경된 파일에 대해서 올릴지 정의]
Local Repository
커밋된 파일들이 저장되어져 있는 공간 (로컬에서의 Git 관리)
Remote Repository
커밋된 파일들을 로컬이 아닌 다른 서버에 올리는 공간 (원격에서의 Git 관리) [협업]
📝Git 용어
Branch
나뭇가지라는 뜻으로 독립적으로 어떤 작업을 진행하기 위해 따로 분기시켜 작업 이력을 관리하는 것을 의미한다 예를 들면 Master에는 배포하는 완벽한 제품이기 때문에 완전한 기능이 나올때 Master에 올려야한다 그 외의 작업은 기능별로 Branch라는 걸 만들어서 작업한 후 Merge하게 된다
Merge Conflict
Merge한 Branch에서 같은 파일을 변경했을 때 충돌이 발생 예를 들면 A라는 사람이 10번라인 수정하고 B라는 15번라인 수정할 때 자동적으로 Merge가 되면 좋지만 그렇지 않을 경우 Git에서 충돌이나서 합칠 수 없다는 에러 사항이 발생하게 된다. 일반적으로 같은 파일을 동시 작업하지 않아야하며 작업할 경우 Commit주기 및 Push 주기를 짧게 가져가야한다