GitHub
Git(깃)과 GitHub(깃허브)의 개념
멤호
2024. 5. 19. 02:28
1. Git
0) 개념
- 모든 파일의 변화를 기록
- 같은 파일에 대한 각기 다른 버전을 보관할 수 있음
- 변경사항을 모든 각기 다른 n개의 파일에 바로 적용할 수 있게 도와줌
- 공동 작업자와 같이 서로의 영향 없이 작업 가능하게 해줌
1) VCS(Version Control System)
- 파일의 변화를 시간에 따라 버전별로 기록하고 추후 특정 시점의 버전을 다시 꺼낼 수 있는 시스템
- VCS가 없었을 때까지는 일일히 버전별 파일을 만들어야 했음
2) VCS 종류
- 중앙 집중식 버전 관리 시스템(Centralized Version Control)
- 각각의 개발자들이 원하는 내용을 서버에 업데이트하여 즉각적으로 동기화가 이루어지는 시스템
- 문제점
- 서버에 문제가 생기면 개발자들이 작업 x
- 인터넷이 없을 경우 개발자들이 작업 x
- 분산버전 관리 시스템(Distributed Version Control)
- ex) git, mercurial, darcs ...
- 중앙 집중식 버전 관리 시스템(Centralized Version Control) 의 문제를 개선하고자 나온 시스템
- 히스토리 정보
- 서버에만 히스토리정보가 있음( X )
- 모든 개발자들이 동일한 히스토리 정보를 가지고 있음( O )
- 분산된 시스템으로 관리로 서버에 문제가 생겨도
- 서로의 정보로 서버를 복원 및 이어서 작업 可
- 인터넷 없이도 작업 可
- 회사에서는 주로 서버를 사용하는 방법
- 사내 전용 서버
- github와 같은 클라우드
- 프로젝트의 전체 내용을 snapshots해 가지고 있음
- 버전들 사이를 자유자재로 이동 가능
- 변경되지 않은 파일들은 링크로 주기 때문에 모든 동작이 빠름
- 쉽고 빠른 브랜치
2. GitHub
0) 개념
- 클라우드에 있는 Git 제공자
1) GitHub의 흐름
- 내 pc에 있는 Git 히스토리 ----(푸시)---->> GitHub ----(히스토리 = 변화기록)---->> 공동 작업자
2) 관련 용어
- 푸시(Push)
- 로컬 리포지토리의 파일을 리모트 리포지토리로 올리는 것
- 풀(Pull)
- 리모트 리포지토리에서 로컬 리포지토리로 내려받는 것
- 리포지토리(Repository)
- 저장소
- 포크(Fork)
- 다른 사람의 리포지토리 수정, 추가를 위해 해당 리포지토리를 자신의 GitHub 리포지토리로 복제하는 기능
- 원본 리포지토리와 연결되어 있음
- 클론(Clone)
- 리모트(원격) 리포지토리와 나의 로컬 pc를 연결하여, 데이터를 복사해 가져오는 작업
- 포크한 리모트 리포지토리 ----(연결)---- 나의 로컬 pc
- 위 작업으로 데이터를 복사해 가져오는 작업
- 브랜치(Branch)
- 동일한 소스 코드에서 가져온 독립적인 개발라인
- 새 기능이나 버그 수정 작업 시 브랜치를 사용하여 다른 팀 구성원의 작업과 분리 可
- 별도의 브랜치를 하나의 브랜치로 병합 可
참고 사이트
더보기