본문 바로가기
목차
utils/git and github

Git : 소개

by ds31x 2024. 5. 20.
728x90
반응형

Git은
코드의 변경 이력을 효율적으로 관리하고
협업을 가능하게 해주는 분산 버전 관리 시스템
(distributed version control system, DVCS)

1. Git은 분산형 버전 관리 시스템

다양한 환경에서 소스코드를 버전별로 쉽게 추적 및 관리할 수 있는 시스템: version control system (VCS)

 

Git은 분산형 버전 관리 시스템(DVCS)으로,

  • 소스 코드의 변경 이력을 관리하고 협업을 용이하게 함.
  • 모든 개발자가 전체 코드의 복사본을 로컬에 저장하여 인터넷 연결 없이도 작업할 수 있으며,
  • 분산된 저장소 간의 변경 사항을 쉽게 병합하고 동기화할 수 있음: snapshot 방식 이용
  • Git은 효율적인 브랜칭, 병합, 그리고 히스토리 관리 기능을 제공하여
  • 소프트웨어 개발의 유연성과 협업을 증진시킴

DVCS와 구분되는 VCS로는 중앙집중형 버전관리시스템 (서버에만 변경이력 저장)이 있음.

 

 snapshot방식이 무엇인지 궁금하면 다음 URL참고:

2024.05.20 - [utils/git and github] - [Git] commit

 

[Git] commit

git commit -m “message”Stage 에서 repository 로 이동시켜 version 관리를 실제로 시작하게 하는 명령어.즉, 현재 stage의 snapshot을 repository에 기록.note: snapshot 방식이란?현재 repository에 저장된 최신의 내용(

ds31x.tistory.com


참고: Version이란?

  • S/W에서의 Version 이란?
    • S/W의 개발, 개선, 수정 등등의 변화 및 상태를 식별하고 추적하기 위해 부여되는 고유한 식별자
    • (출처: ISO/IEC 19770, Semantic Versioning)
  •  Git에서의 Version 이란?
    • Repository 내의 특정 시점의 파일 상태(=snapshot)를 고유한 commit 객체로 기록한 것
    • (출처: Pro Git Book)

2024.09.19 - [Python] - [Etc] SW Version: Semantic Versioning + packaging.version

 

[Etc] SW Version: Semantic Versioning + packaging.version

1. Semantic Versioning SystemSemantic Versioning (SemVer) 시스템에 따라,소프트웨어에서 major와 minor, patch (or micro) 버전을 구분하여 버전을 매김.Python에서는 PEP 440 에서 버전 표기 방식을 지정하고 있으며 SemVe

ds31x.tistory.com


참고: Distributed Version Control System (DVCS, 분산형 버전 관리 시스템)

DVCS는 소스 코드의 변경 이력을 중앙 서버뿐만 아니라 모든 개발자의 로컬 저장소에 저장하는 방식의 VCS을 의미함.

  • 이를 통해 개발자들은 인터넷 연결 없이도 작업할 수 있으며,
  • 로컬 저장소 간에 변경 사항을 병합하고 동기화할 수 있어
  • 협업이 더욱 유연하고 효율적으로 이루어짐.
  • Git이 대표적인 DVCS 임.

다른 DVCS로는 BitKeeper가 있으며,
중앙집중형 버전관리시스템으로 유명한 것은 Concurrent Versions System (CVS)가 있음.


 

참고: BitKeeper와 Git, Git 의 시작

2002년부터 Linux 커널 개발자들은 BitKeeper라는 분산형 버전 관리 시스템을 사용하고 있었으나 2005년에 BitKeeper의 무료 사용이 중단되면서 Linux 커널 커뮤니티는 새로운 버전 관리 시스템이 필요하게 됨.
이에 Linus Torvalds는 BitKeeper의 대안으로 새로운 버전 관리 시스템을 직접 개발한 것이 Git임.

여담으로 2016년에 BitKeeper는 오픈 소스 소프트웨어로 전환되었으며, 현재 Apache 2.0 라이선스 하에 배포되고 있음.

 

Git은 2005년 Linus Torvalds 가

리눅스 커널 개발을 위해 만든 분산 버전 관리 시스템

https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-%EC%A7%A7%EA%B2%8C-%EB%B3%B4%EB%8A%94-Git%EC%9D%98-%EC%97%AD%EC%82%AC?utm_source=chatgpt.com

 

Git - 짧게 보는 Git의 역사

2005년에 커뮤니티가 만드는 Linux 커널과 이익을 추구하는 회사가 개발한 BitKeeper의 관계는 틀어졌다. BitKeeper의 무료 사용이 재고된 것이다. 이 사건은 Linux 개발 커뮤니티(특히 Linux 창시자 Linus Tor

git-scm.com

 

여담으로, 2005 년 4월 3일 개발을 시작하여, 2005년 4월 13일에 초기버전이 완성됨 (10일만에...). 
더 무서운 건 4월 18일에 리눅스 커널 소스 코드 관리에 사용되기 시작함(여러 브랜치 병합시작).

6월 16일, 커널 2.6.12 릴리스 버전을 관리하기 시작했음.

토발즈가 직접 관여한 기간은 6개월 정도이고, 주 기여자인 주니오 하마노가 2005년 12월 21일의 1.0 릴리즈에 큰 기여를 한 것으로 알려짐.

https://as-j.tistory.com/71?utm_source=chatgpt.com

 

[Git] '깃'의 시작

지옥에서 온 관리자, 깃 1. 기원 1) 누가 리누스 토르발즈(Linus Torvalds) 2) 언제 2005년 4월 3일 개발 시작, 4월 6일 깃 프로젝트 발표, 4월 7일 자체 호스팅 진행, 12월 21일 1.0 릴리스 3) 어디서 토르발즈

as-j.tistory.com


2. Git Repository (깃저장소)

Git Respository는 Git 시스템을 이용해서 파일이 변경 이력 별로 구분하여 저장할 수 있는 파일 저장소임.

remote repository와 local repository로 나뉨.


2-1. Remote Git Repository (원격 저장소)

원격저장소는 전용서버에서 관리되어 여러 사람과 공유할 수 있는 저장소.

GitHub은 유명한 원격 저장소 중 하나임.

2024.05.26 - [utils/git and github] - [Git] Remote Repository

 

[Git] Remote Repository

Remote RepositoryRemote repository는 Git에서 원격 서버에 저장된 저장소를 의미함. 이는 Local repository(로컬 저장소)와 달리 네트워크를 통해 접근할 수 있으며, 협업할 수 있는 중앙 저장소 역할을 함.Remot

ds31x.tistory.com

GitHub: Where the world builds software

 

GitHub: Let’s build from here

GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea...

github.com


2-2. Local Git Repository (로컬 저장소)

로컬저장소는 PC에 저장되는 개인 전용 저장소.

원격 저장소에 있는 파일을 로컬 저장소로 불러 올 수 있음.


3. GUI Git 클라이언트

Git프로그램을 편리하기 사용하기 위해 GUI를 제공하는 클라이언트들.

하지만 cli에서 사용법을 익히고 사용하길 권장함.

 

종류

  • Tortoise Git
  • SourceTree
  • Github Desktop
  • Git Extensions

관련 자료들

https://git-scm.com/book/ko/v2

 

Git - Book

 

git-scm.com

https://www.atlassian.com/git/tutorials

 

Git Tutorials and Training | Atlassian Git Tutorial

Learn the basics of Git through this comprehensive Git training. Branching, pull requests, merging and more are covered in the Atlassian Git tutorial.

www.atlassian.com

https://youtu.be/1I3hMwQU6GU?si=j03sdu8pbVXt93v7


2024.05.20 - [utils/git and github] - [Git] Git Summary (작성중)

 

[Git] Git Summary (작성중)

git이란2024.05.20 - [utils/git and github] - Git : 소개 git 설치 후 해줘야 하는 작업들[Git] git 설치 후 우선 해줘야 하는 작업들 (tistory.com)local repository 초기화2024.05.20 - [utils/git and github] - [Git] init : local repo

ds31x.tistory.com


 

728x90