
Git은 분산 버전 관리 시스템(DVCS)으로, 소프트웨어 개발에서 코드의 버전을 관리하는 데 필수적인 도구이다. Linus Torvalds가 처음 개발하였으며 효율성, 신뢰성, 비선형적인 개발 Workflow을 지원한다.
Git은 중앙 집중식 서버에 의존하지 않고 각각의 개발자가 전체 코드 베이스의 복사본을 로컬 컴퓨터에 저장하게 된다. 이는 네트워크에 문제가 생겨도 작업을 계속할 수 있고 각자의 로컬 저장소에서 독립적으로 작업이 가능하게 한다.
Git에서의 모든 작업은 빠르게 수행되도록 최적화되어 있으며 대부분의 명령은 로컬 파일 시스템에서 실행되어 네트워크에 의존하는 작업이 최소화되어 큰 프로젝트라도 빠른 속도로 실험이 가능하다.
Git은 내부적으로 SHA-1 해시를 사용하여 모든 파일과 커밋을 식별한다. 이를 통해 소스코드의 변경사항이나 업데이트가 있을 때마다 체계적으로 관리되며 오류나 파일의 손상이 있을 경우 즉시 감지할 수 있다.
Branch를 활용하여 여러 개발자들이 동시에 다양한 기능을 작업할 수 있어 별도의 branch에서 실험을 진행한 뒤 정상적인 작동이 가능하면 merge를 통해 main branch로 합칠 수 있다.
Branch는 작업을 독립적으로 진행하기 위한 기능이다. 코드 베이스의 한 버전에서 새로운 시도로 개발을 진행할 수 있게 해주며 각 branch는 다른 branch의 영향을 받지 않으므로 하나의 저장소에서 여러 작업을 동시에 진행할 수 있다.
git branch <branch 명>
git checkout <branch 명>
git switch <branch 명>
git checkout -b <새 branch 명>
git branch
git branch -d <branch 명>
git push origin <branch 명>



Working Directory는 파일을 수정하고 일상적인 작업을 수행하는 곳이다. 이곳에서 코드를 작성하고 수정사항을 생성하며 새로운 기능을 개발한다.
수정한 파일들을 commit하기 전에 Staging Area에 임시 저장한다. 이는 commit할 파일들을 선별하여 앞접시에 덜어내는 과정이라고 생각할 수 있다.
git add <파일명> # 특정 파일을 Staging Area에 추가
git add . # 모든 변경사항을 Staging Area에 추가
변경사항을 Staging Area에서 commit으로 확정하면 Local Repository에 기록이 된다. commit은 변경 내용의 스냅샷이라고 생각하고 나중에 특정 버전으로 돌아갈 수 있게 해준다.
git commit -m "커밋 메시지"
Conventional Commits는 코드 저장소의 commit 메세지에 일관된 규칙을 적용하기 위한 규칙으로 commit log의 가독성을 높이고 소프트웨어의 버전 관리와 릴리즈 프로세스를 자동화하는데 도움을 준다.
<Type>[Optional Scope]: <설명>
[Optional Body] 작업 상세 기술
[Optional Footer] 부가 정보
Local에서 작업한 내용을 공유하기 위해선 Remote Repository에 push해야한다. 대표적인 Remote Repository 서비스로는 GitHub, GitLab, Bitbucket 등이 있다.
git push origin <브랜치명>
다른 branch로 전환하거나 특정 파일을 이전 상태로 복완할 때 사용한다.
git checkout <브랜치명>
다른 branch의 변경사항을 현재 branch로 병합할 때 사용한다.
git merge <브랜치명>
Remote Repository의 최신 이력을 Local에 가져오되 병합은 하지 않을 때 사용한다.
git fetch origin