
Git 이란?
Git은 버전 관리 도구(Version Control System) 중 하나, 소프트웨어 개발에서 소스 코드와 관련 파일의 변경 이력을 관리하고 추적하는 도구이다. 개발자들 사이에서 소스 코드 관리와 협업을 위한 필수 도구로 인정받고 있으며, 다양한 프로젝트 및 업무 환경에서 활발하게 사용되고 있습니다. Git을 통해 변경 이력을 관리하고 협업하는 데 있어서 높은 유연성과 신뢰성을 제공한다.
- 버전 관리
개발자가 작성한 코드와 프로젝트 파일의 변경 내역을 지속적으로 기록하며, 각 변경 내용을 버전으로 저장한다. - 분산 시스템
중앙 서버가 없이 각 개발자의 로컬 컴퓨터에 별도의 저장소(repository)를 가진다. - 브랜치
브랜치(branch)라는 개념을 활용하여 병렬 개발을 지원한다. 각 브랜치는 독립된 작업 공간으로 사용되며, 다른 브랜치와 별개로 변경 사항을 추가하고 테스트할 수 있다. 나중에는 브랜치를 병합(Merge)하여 통합한다. - 협업
변경 내용을 다른 개발자와 공유하고 병합하여 프로젝트를 공동으로 관리할 수 있다. - 원격 저장소
Git은 원격 저장소(remote repository)를 지원하여 프로젝트의 백업과 협업을 가능하게 한다. 원격 저장소는 프로젝트를 호스팅 하고 공유하는 데 사용된다. - 속도와 효율성
빠른 속도로 변경 내역을 추적하고 관리하며, 대규모 프로젝트에서도 효율적으로 작동한다.
Version Control System 이란?
소프트웨어 개발과 관련된 파일과 문서의 변경 내역을 추적하고 관리하기 위한 시스템이다.
VCS는 소프트웨어 코드, 문서, 그래픽 등의 자원을 효과적으로 협업하고 관리할 수 있도록 도와준다.
대표적인 VSC 도구로는 Git, SVN 등이 있습니다.
Git을 사용하는 이유
- 협업 지원
Git은 여러 개발자들이 프로젝트에서 협업할 수 있는 강력한 도구이다. 여러 명이 동시에 작업할 수 있으며 각자의 변경 내용을 추적하고 통합할 수 있다. - 버전 관리
Git은 모든 프로젝트 변경 사항의 버전을 추적하고 관리한다. 이로써 이전 버전으로 되돌아갈 수 있고, 변경 내역을 비교하고, 문제 발생 시 특정 버전으로 복구할 수 있다. - 분산 시스템
Git은 분산 버전 관리시스템(Distributed Version Control System, DVCS)이다. 각 개발자는 전체 저장소를 로컬에서 복제하고 작업할 수 있으며, 중앙 서버의 의존성이 낮아지므로 네트워크 연결 없이도 작업할 수 있다. - 브랜치 관리
Git은 브랜치를 통한 개발을 지원한다. 새로운 기능 개발이나 버그 수정과 같은 작업은 새로운 브랜치에서 진행하고, 완료되면 기존 브랜치에 병합(Merge)하여 코드 충돌을 방지할 수 있다. - 비교와 병합
Git은 변경 내용 비교와 병합을 쉽게 할 수 있도록 지원한다. 다른 개발자가 수정한 코드와 본인의 코드를 비교하고 충돌 시 해결할 수 있다. - 백업 및 복제
Git을 사용하면 프로젝트의 완전한 백업을 만들 수 있다. 또한 다른 저장소에 프로젝트를 복제하거나 공유하는 것이 간단하므로 여러 환경에서 작업할 수 있다. - 히스토리 추적
Git은 모든 변경 내역을 체계적으로 기록하므로 누가, 언제, 무엇을 왜 변경했는지 추적할 수 있다. 이는 코드 리뷰와 오류 디버깅에 매우 유용하다. - 오픈 소스 생태계
많은 오픈 소스 프로젝트가 Git을 사용하고 있으며, Git을 이용해 프로젝트에 참여하고 기여할 수 있다. - 사용자 정의 워크 플로우
Git은 다양한 워크플로우에 맞게 커스터 마이징 할 수 있다. Git 훅(Hook)을 활용하여 커밋메시지 유효성 검사, CI/CD 파이프라인 연동 등을 구축할 수 있다. - 무료 및 오픈 소스
Git은 무료이며 오픈 소스로 제공되므로 누구나 이용하고 기여할 수 있다.
이러한 이유들로 Git은 소프트웨어 개발 프로세스에서 필수적인 도구 중 하나이며, 개발자들 사이에서 널리 사용되고 있다.
'Infra > Git' 카테고리의 다른 글
| [Git] git reset, revert 으로 되돌아가기 (0) | 2023.10.11 |
|---|---|
| [Git] git add, commit 으로 변경사항 저장하기 (0) | 2023.10.11 |
| [Git] .gitignore 사용해보기 (0) | 2023.10.09 |
| [Git] Git 최초 설정 및 관리 시작 (0) | 2023.10.09 |
| [Git] CLI vs GUI (0) | 2023.10.09 |