Minwoo Dev.

[Git] Git이란 ? 본문

Git & Github

[Git] Git이란 ?

itisminu 2024. 1. 5. 11:10
728x90
반응형
SMALL

 

Git이 개발자들에게 필수적이라는 말을 많이 들어봤을 것이다.

도대체 Git이 어떤 것이고, 왜 중요하다는 걸까 ?

 

우선, 버전관리 시스템에 대해서 먼저 설명하겠다.

 

버전관리시스템이란 ?

 

문서나 설계도, 소스 코드 등의 변경점을 관리해주는 소프트웨어.

 

버전관리 시스템의 종류

 

로컬 VCS (Local VCS)

장점

서버없이 로컬 컴퓨터에서 버전을 관리한다. 간단한 데이터베이스만으로도 구현이 가능하므로 단순하고 개인적인 프로젝트에 적합하다.

 

단점

협업에서는 사용하기 어렵고, 컴퓨터가 고장나는 경우에는 복구할 방법이 없다.

 

대표적으로 RCS, SCCS가 있다.

 

중앙집중식 VCS (Center VCS)

장점

서버에 최종본 한 벌이 있으며, 사용자들은 이 중 수정을 원하는 파일만 로컬에 받아 수정한 후 서버에 올리게 된다.

간단한 방법으로 협업이 가능하고 관리자가 누군지, 어떤 일을 하고 있는지 알기 쉽다는 장점이 있다.

 

단점

중앙 서버가 다운될 경우 업무가 마비되는 단점이 있다. 

또, 서버의 정보가 날아갈 경우 모든 히스토리가 날아간다. 

협업의 규모가 커지면 수정 충돌 문제가 발생할 수 있다.

 

대표적으로 CVS, subversion이 있다.

 

분산 VCS (Division VCS)

파일을 저장하는 서버가 있는 것은 동일하지만 수정을 위해 프로젝트 전체를 로컬에 다운받은 뒤 수정한다.

 

장점

중앙 서버가 다운되더라도 개별 사용자들은 로컬에 다운받은 파일이 있기때문에 작업이 가능하다.

수정 시에도 서버에 있는 파일이 아닌 로컬에 개인적으로 저장한 파일을 수정하기 때문에 충돌의 우려가 적다.

최종적으로 서버에 올릴때만 신경쓰면 된다.

 

Git이 여기에 해당한다.

 

 

Git의 시작

git

현재와 같이 개발할 때 Git이라는 것을 사용하기 전에는, SVN(Subversion)과 CVS(Concurrent Versions System) 같은 버전관리 시스템이 존재했다. 하지만 대부분의 경우에 버전관리 시스템을 사용하지 않았는데, 단지 기능이 마음에 들지 않았다는 이야기가 있다. 

 

이를 대체하기 위해 많은 사람들이 메일링 리스트로 개발자들의 코드들을 관리했다고 한다.

 

여러 프로그램들 중 Bitkepper라는 프로그램이 분산 처리 기능과 빠른 성능의 장점으로 사용되었는데, Bitkeeper 측에서 일부 개발자들을 제한하는 문제가 발생했다. 

 

이러한 상황이 너무 불편했던 리누스 토르발스라는 사람은 스스로 버전 관리 시스템을 개발하기로 하였고 , 그것이 바로 Git의 시작점이다.

 

 

 

Git을 개발자들이 사용하는 이유 

git과 github

Git은 협업에 매우 유리한 툴이다.

 

  • 다수의 개발자가 같은 기능을 동시에 개발할 수 있기때문에 소스코드를 주고받을 필요가 없다.
  • 코드를 작성하던 중 오류가 발생하거나 해당 부분을 취소하는 경우, 코드를 이전으로 쉽게 되돌릴 수 있다.
  • 이전 코드의 내용과 수정한 에디터가 저장되기에 오류의 추적이 쉽다.

 

 

 

 

Git의 구조 (Structure of Git)

 

Git의 구조

 

 

Working Dirctory 

현재 작업하는 공간을 의미한다.

 

Staging Area 

저장소에 업데이트하려는 모든 변경사항을 모아두는 곳

 

Local Repository

개인 PC에 저장되는 저장소

 

Remote Repository

다른 개발자와 용유하는 저장

 

 

 

 

 

 

 

 

 

 

 

 

 

참고 출처 - 개인적으로 정리해두고 공부하려 작성한 글입니다. 스크랩한 출처를 남깁니다.

https://velog.io/@muman_kim/Git%EB%B6%84%EC%82%B0%ED%98%95-%EB%B2%84%EC%A0%84%EA%B4%80%EB%A6%AC%EC%8B%9C%EC%8A%A4%ED%85%9C

 

Git(분산형 버전관리시스템)이란?

git에 대한 내용을 설명하는 입장에서 한번 나의 생각을 정리보았다. 생각을 정리한다는 것은 나의 머릿속 git이란 단어를 들었을 때 어떻게 설명을 해야할까?를 정하고 개념과 개념을 설명하는

velog.io

 

https://velog.io/@hahaha/Git-%EA%B5%AC%EC%A1%B0%EC%99%80-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%86%8C%EA%B0%9C

 

[Git] 구조와 사용법 소개

1. Structure 1) Working Directory: 작업하는 공간 tracked files: git이 인지하고 있는 파일 untracked files: git이 인지하지 못한 파일 2) Staging Area: 저장소에 업데이트하려는 모든 변경사항을 모아

velog.io

https://namu.wiki/w/Git

 

Git - 나무위키

인터넷에 공개된 자료가 매우 많다. 여기서 주의해야 할 점이 있는데, 상당수의 입문 자료에서는 보통 branch를 분리하라고 하지만 현실 프로젝트에서는 그렇게 하다가 나중에 merge 단계에서 더

namu.wiki

 

728x90
반응형
LIST