Minwoo Dev.
[Git] Git이란 ? 본문
Git이 개발자들에게 필수적이라는 말을 많이 들어봤을 것이다.
도대체 Git이 어떤 것이고, 왜 중요하다는 걸까 ?
우선, 버전관리 시스템에 대해서 먼저 설명하겠다.
버전관리시스템이란 ?
문서나 설계도, 소스 코드 등의 변경점을 관리해주는 소프트웨어.
버전관리 시스템의 종류
로컬 VCS (Local VCS)
장점
서버없이 로컬 컴퓨터에서 버전을 관리한다. 간단한 데이터베이스만으로도 구현이 가능하므로 단순하고 개인적인 프로젝트에 적합하다.
단점
협업에서는 사용하기 어렵고, 컴퓨터가 고장나는 경우에는 복구할 방법이 없다.
대표적으로 RCS, SCCS가 있다.
중앙집중식 VCS (Center VCS)
장점
서버에 최종본 한 벌이 있으며, 사용자들은 이 중 수정을 원하는 파일만 로컬에 받아 수정한 후 서버에 올리게 된다.
간단한 방법으로 협업이 가능하고 관리자가 누군지, 어떤 일을 하고 있는지 알기 쉽다는 장점이 있다.
단점
중앙 서버가 다운될 경우 업무가 마비되는 단점이 있다.
또, 서버의 정보가 날아갈 경우 모든 히스토리가 날아간다.
협업의 규모가 커지면 수정 충돌 문제가 발생할 수 있다.
대표적으로 CVS, subversion이 있다.
분산 VCS (Division VCS)
파일을 저장하는 서버가 있는 것은 동일하지만 수정을 위해 프로젝트 전체를 로컬에 다운받은 뒤 수정한다.
장점
중앙 서버가 다운되더라도 개별 사용자들은 로컬에 다운받은 파일이 있기때문에 작업이 가능하다.
수정 시에도 서버에 있는 파일이 아닌 로컬에 개인적으로 저장한 파일을 수정하기 때문에 충돌의 우려가 적다.
최종적으로 서버에 올릴때만 신경쓰면 된다.
Git이 여기에 해당한다.
Git의 시작
현재와 같이 개발할 때 Git이라는 것을 사용하기 전에는, SVN(Subversion)과 CVS(Concurrent Versions System) 같은 버전관리 시스템이 존재했다. 하지만 대부분의 경우에 버전관리 시스템을 사용하지 않았는데, 단지 기능이 마음에 들지 않았다는 이야기가 있다.
이를 대체하기 위해 많은 사람들이 메일링 리스트로 개발자들의 코드들을 관리했다고 한다.
여러 프로그램들 중 Bitkepper라는 프로그램이 분산 처리 기능과 빠른 성능의 장점으로 사용되었는데, Bitkeeper 측에서 일부 개발자들을 제한하는 문제가 발생했다.
이러한 상황이 너무 불편했던 리누스 토르발스라는 사람은 스스로 버전 관리 시스템을 개발하기로 하였고 , 그것이 바로 Git의 시작점이다.
Git을 개발자들이 사용하는 이유
Git은 협업에 매우 유리한 툴이다.
- 다수의 개발자가 같은 기능을 동시에 개발할 수 있기때문에 소스코드를 주고받을 필요가 없다.
- 코드를 작성하던 중 오류가 발생하거나 해당 부분을 취소하는 경우, 코드를 이전으로 쉽게 되돌릴 수 있다.
- 이전 코드의 내용과 수정한 에디터가 저장되기에 오류의 추적이 쉽다.
Git의 구조 (Structure of Git)
Working Dirctory
현재 작업하는 공간을 의미한다.
Staging Area
저장소에 업데이트하려는 모든 변경사항을 모아두는 곳
Local Repository
개인 PC에 저장되는 저장소
Remote Repository
다른 개발자와 용유하는 저장
참고 출처 - 개인적으로 정리해두고 공부하려 작성한 글입니다. 스크랩한 출처를 남깁니다.
'Git & Github' 카테고리의 다른 글
[Github] PR(Pull Request) (0) | 2024.01.16 |
---|---|
[Github] Git branch, 브랜치 (1) | 2024.01.15 |
[Github] github 업로드하기, git remote, git push (1) | 2024.01.13 |
[Github] 레파지토리(Repository) 생성, git init, git add, git commit (0) | 2024.01.13 |
[Github] Git 환경 세팅하기(Git 설치, Github 가입, sourcetree 설치) (0) | 2024.01.13 |