소스코드가 공개된 소프트웨어 라는 의미
누구나 자유롭게 해당 기능을 추가하고 개선할 수 있음
이 작업을 Contribute(기여하다) 라고 함.
우리가 앞으로 배울 React같은 경우에도 오픈소스로 공유되어져 있어 Contiribute하는것도 가능함.
어떤 수정사항이 있는지에 대해서도 commit기록을 통해 변경된 코드와 변경사항 확인이 가능
소스코드를 관리, 추적 할 수 있는 버전 관리 시스템(Version Control System)중 하나이며
가장 강력하고 대중적임.
개발자의 코드를 효율적으로 관리하기 위해 만들어짐
소스코드가 변경된 이력을 쉽게 확인 할 수 있음
지금 실행 중인 텍스트 에디터에서는 컨트롤 +Z를 여러 번 눌러 이전 상태로 돌아갈 수 있지만 에디터를 종료후 다시 에디터를 실행하게 되면 컨트롤 +Z가 먹히지 않고 이전 상태로 돌아갈 수 없음.
이러한 경우를 막기 위해서 버전 관리를 통해 기존에 작성한 내용을 보존.
- 파일이 변경되면 변경 이력을 저장할 수 있다.
- 이전 버전으로 돌아갈 수 있다.
- 어떤 변경 사항이 발생했는지 알아보기 쉽다.
- 협업하기에 좋다.
- 백업용
git을 설치하면 가장먼저 사용자 이름과 이메일 주소를 설정해야함
설정에 기록된 사용자 이름과 메일이 commit내역에 기록됨.
메일과 이름 설정 방법
$ git config --global user.name "나의 사용자 이름" $ git config --global user.email "내 이메일 주소"
설정이 잘 되었는지 확인 하는 방법
git config --list
어떤 파일이 어떻게 바뀌었는지 기록하는것을 스냅샷이라고하며
스냅샷을 만들어 주는 작업을 commit이라고 한다.
작업하는 소스 코드 폴더가 버전 관리를 받기 위해서는 내 폴더를 git 관리 아래에 두어야 하는데 이때 git으로 관리되는 폴더를 git repository라고 함
git repository는 remote repository와 local repository 두 종류의 저장소를 제공
다른 사람이 Remote Repository에 올려놓은 소스 코드를 내 local Repository로 가져올수 있음.
원격 온라인 서버 상의 저장소, 여러 사람이 함께 공유 가능
내가 작업한 코드를 공유하는 곳
내 컴퓨터의 저장소, 내 개인 전용 저장소
내가 작업하는 곳.
프로젝트에 Contribute하기 위해서는 먼저 다른 remote repository를 내 remote repository로 가져오는 작업이 필요. 이 작업을 Fork라고 함
Fork를 하고 나면(다른 remote reposiyory에서 내 remote reposiyory로 가져온 상태) 내 PC에 가져오는 작업이 필요
이 과정을 Clone이라고함.Remote Repository에 있는 코드를 Clone해서 내 컴퓨터에 가지고 오는 것.
Clone한 이후 내가 수정한 코드를 commit을 통해 저장한 이후
다시 내 Remote Repository에 올려주는 작업이 필요함
이 과정이 Push
push까지 완료하게 되면 gitgub에는 Pull request라는 기능이 있어서 내가 제안한 코드 변경 사항에 대해 반영 여부를 요청할 수 있음.
Remote REpository에서 변경사항이 있을때 나의 local repository로 가져오는 작업을 의미함
git repository를 관리 할 수 있는 클라우드 기반 서비스
git으로 버전을 관리하는 폴더에 대해 github를 통해 여러 사람들이 공유하고 접근할 수 있는것.