Git, GitHub
Git
: 버전 관리를 도와주는 소프트웨어, 분산형 버전 관리 시스템
- 버전 관리란 각 버전 별로 변경된 이력들을 저장하는 작업
- 날짜별로 어떤 파일이 바뀌었는지 확인이 가능하다
- 이렇게 특정 시점에 생성된 백업 복사본을 스냅샷이라고 함
- 이렇게 스냅샷을 만들어 주는 작업을 commit 이라고 함
GitHub
: 원격 저장소 호스팅 서비스. 깃으로 버전을 관리하는 프로젝트들이 모여 있는 웹 사이트
- GitHub는 Git Repository를 관리할 수 있는 클라우드 기반 서비스
- Git으로 버전을 관리하는 폴더에서 GitHub를 통해 여러 사람들이 공유하고 접근 할 수 있음
- GitHub는 내 컴퓨터에서 Git으로 관리하는 프로젝트를 올려 둘 수 있는 사이트(일종의 백업사이트)
- commit을 통해서 오픈 소스에 어떤 수정사항이 있는 지 확인 할 수 있음
* Git repository
: 내가 작업하는 소스 코드 폴더가 버전 관리를 받기 위해서는 내 폴더를 Git의 관리 아래 둬야함
- Git으로 관리되는 폴더를 Git repository 라고 함
- Remote repository와 Local Repository 두 종류의 저장소 제공
- 내 로컬 저장소에 있는 코드를 공유하기 위해 리모트로 업로드 가능
- 리모트 저장소에 있는 소스 코드를 다운도 가능
** Remote repository : 원격 온라인 서버 상의 저장소. 여러 사람이 공유 가능
** Local repository : 내 컴퓨터의 저장소. 내 개인 저장소
** Fork
- 오픈 소스에 기여하기 위해서는 먼저 원격 저장소에서 내 원격 저장소로 가지고 와야하는데 이 과정을 Frok라고 함
(예를 들어 리액트 오픈소스에 기여하고 싶으면 우선 그 코드를 리액트 저장소에서 -> 내 원격 저장소로 이동 시켜야 함. 이게 포크)
** Clone
- fork를 하고 나서 나의 Remote 저장소에 옮겨온 코드를 수정하기 위해 내 컴퓨터로 옮겨오는 작업이 필요한데 이 과정을 clone이라고 함
(이제 내 원격 저장소에서 내 컴퓨터로 가지고오는 과정. 이게 클론)
** Push
- 내 컴퓨터에서 소스코드 변경 작업이 끝나서 이 변경된 내용을 commit을 통해 저장해 준 뒤 Remote Repository에 반대로 올려주는 과정이 필요. 이 과정을 push라고 함
- Local repository에 기록해 놓은 commit을 Remote repository로 업로들 할 수 있다
** Pull request
- 푸시를 완료하고 나면 GitHub에 풀 리퀘스트라는 기능이 있어 내가 제안한 코드 변경 사항에 대해 반영 여부를 요청할 수 있음