오픈소스계의 영원한 아이돌 리누스 토발즈는 리눅스 커널을 관리하는 기존 툴이 엉망인 것에 너무 빡친 바람에 git이라는 소스관리 툴을 만든다. 그게 리누스에게 얼마나 깊은 빡침이었는지, 단 2주만에 완성하는 기염을 토했다.
오픈 소스의 승리
버전 관리: 각 버전 별로 변경된 이력들을 저장하는 작업
- 다시 돌아가고 싶을 때! → 변경된 이력들을 따라 되돌아가는 것이 가능함
버전(변경 사항, 이력)에 저장되는 것들
- "누가" "어떤 파일"을 "변경(추가, 수정, 삭제)"했는지 + 간단한 코멘트
→ 협업하기에 좋다!
→ 백업용으로 좋다!
Git 저장소를 관리할 수 있는 클라우드 기반 서비스
= Git으로 관리되는 폴더를 다른 사람들이 Github를 통해 볼 수 있음
= 개발자들의 SNS, 가장 많은 오픈 소스
오픈 소스 : 소스 코드가 공개된 소프트웨어
누구나 자유롭게 기능을 추가하고 개선할 수 있다 (기여하다, contribute) 어떤 수정사항이 있었는지도 확인 가능 (commit 기록을 통해서)
내 컴퓨터에서 Git으로 관리하는 프로젝트를 올려둘 수 있는 사이트
Local Repository, Remote Repository
= Local: 내 컴퓨터, 내 개인 전용 저장소
= Remote: 원격 온라인 서버 상의 저장소, 공유 가능
Local ↔ Remote 소스 코드를 옮길 수 있음 (다른 사람 것도)
React 원격 저장소를 내 원격 저장소에 가지고 오기 (Fork)
가져온 원격 저장소를 내 컴퓨터(Local)로 가져오기 (Clone)
내 컴퓨터에서 가져온 React 소스코드를 변경
변경한 내용을 저장 (Commit)
저장된 내용을 원격 저장소로 올려줌 (Push)
= 내 원격 저장소, React 원격 저장소
= Push 후 Pull request로 변경한 것을 반영할 지 요청 가능
원격 저장소가 변경되었을 때, 내 개인 저장소(Local)로 가져오기 (Pull)
Fork → Clone → (작업) → Commit → Push
- 필요하면 Pull request, Pull