본문 바로가기
etc/Git

[GIT] Distributed Version Control System (분산버전관리시스템)

by lazy_nyoung 2023. 3. 29.

깃의 목적     

  1. 버전관리     
  2. 백업    
  3. 협업

 

 

리눅스 개발자인 깃은 2005년에 리눅스 커널 개발을 위해 다른 커널 개발자들과 함께 '리누스 토르발스'가 처음 개발하였습니다. 

 

리눅스 커널의 개발자들은 기존 소스관리시스템(SCM) 으로 '비트키퍼'를 사용하다가 저작권자 '래리맥보이'가 '앤드루 트리젤'이 비트키퍼 프로토콜을 리버스 엔지니어링하여 소스풀러를 만들었다고 주장하면서, 비트키퍼의 자유 이용을 철회하였습니다. 이에 따라 많은 개발자들이 비트키퍼의 이용을 포기하였구요. 이는 깃 뿐만 아니라 머큐리얼 이라는 버전관리 시스템이 만들어진 계기이기도 합니다. 토르발스는 패치를 적용하고 모든 관련 메타데이터를 업데이트하는데 30초가 필요한 소스 관리 시스템의 예를 언급하면서, 동료 관리자들과의 동기화를 하려면 한 번에 이런 동작을 250번이나 수행해야 하는 리눅스 커널 관리에서는 적용할 수 없다고 하였다. 그는 패치 작업에 3초 이상 소요되면 안 된다고 규정하였으며 3가지 사항을 더 추가하였습니다.

  • 무엇을 하지 "않을지"의 예로 CVS를 참고할 것. 의심이 되면 명확히 반대의 결정을 할 것
  • 분산 방식의 비트키퍼같은 워크플로를 지원할 것
  • 우연이든 악의적이든 변질에 대비한 매우 강력한 안전 기준을 포함할 것

만족되는 버전관리시스템을 찾지 못한 토르발스는 자신이 직접 작성해 나가기 시작하여 깃이 개발되었다고 합니다.

 

 

 

[사용예시]

타겟(target) 소프트웨어 빌드용 다운로드 명령어> git clone [주소]

파일 수정후 커밋 (필수사항)

> git commit [파일명]

수정 파일 업로드(리모트 업로드시 사전 로컬 commit 필수)

> git push

 

[주요 명령어]

명령어 실행 비고
git branch 현재 브랜치 이름  
git pull git fetch + git merge git diff 생략
git log commit list (history) 종료(나가기) q
git show 최근 커밋 정보 git show [로그 일련번호]

 

 

 

처음 깃에 대해 찾아볼 때 참고 했던, 사이트 링크 참고하시라고 올려드립니다.

 

https://www.slideshare.net/ibare/dvcs-git

 

버전관리를 들어본적 없는 사람들을 위한 DVCS - Git

git Learn DVCS For beginner Distributed Version Control System 텍스트 파일이 하나 있다 memo.txt 하고싶은 것? memo.txt 수정한 내용을 기록해두고 싶다 어떻게 할까? 수정할 때 마다 다른 파일로 저장 memo.txt ...

www.slideshare.net

 

https://www.inflearn.com/course/git-2

 

[무료] 버전 관리 시스템 Git - 인프런 | 강의

이 수업은 버전관리 시스템 git을 소개하는 수업입니다. , - 강의 소개 | 인프런

www.inflearn.com

https://www.inflearn.com/course/github-%EA%B8%B0%EB%B3%B8%EA%B8%B0-10%EB%B6%84

 

[무료] 10분만에 배우는 깃헙(github) 기본기 - 인프런 | 강의

깃헙에 대해 가장 많이 써먹는 것들을 골라 아주 짧은 시간안에 배워볼 수 있는 강좌!, - 강의 소개 | 인프런

www.inflearn.com