Git, Linux, nvm, npm, node.js 등에 대해서 배웠다.
Git Github 두 가지를 비교해 보자면 Git은 소스 코드 기록을 관리하고 추적할 수 있는 버전 관리 시스템입니다.
Github은 Git Repository를 관리할 수 있는 클라우드 기반 서비스입니다.
즉 Git으로 버전을 관리하는 폴더에 대해서 Github을 통해 여러 사람들이 공유하고 접근할 수 있는 것이죠.
한 마디로 개발자들의 SNS입니다. Github에서 Code Review 등을 통해 협업이 가능하고, 수많은 오픈 소스 프로젝트들이 GitHub로부터 호스팅되고 있어서, 누구든 자유롭게 기여할 수 있습니다.
내가 작업하는 소스 코드 폴더가 버전 관리를 받게 하기 위해서는 내 폴더를 Git의 관리 아래에 두어야 하는데요.
Git으로 관리되는 폴더를 Git repository 라고 합니다.
Git repository 는 Remote Repository와 Local Repository 두 종류의 저장소를 제공합니다.
작업할 때는 Local Repository에서 할 수 있고 내가 작업한 코드를 공유하려면 Remote Repository에 업로드해 여러 사람이 함께 공유할 수 있습니다.
다른 사람이 Remote Repository에 올려놓은 소스 코드를 내 Local Repository 로 가지고 올 수도 있습니다.
React 프로젝트에 contribute을 하기 위해서는 먼저 React 원격 저장소를 내 원격 저장소로 가지고 오는 작업이 필요합니다.
그 과정을 Fork 라고 합니다.
이제 Fork 를 하고나 면 나의 Remote Repository에 React 코드를 옮겨온 상태입니다.
이 코드를 수정하기 위해서는 내 컴퓨터로 가져오는 작업이 또 필요합니다.
그 과정을 Clone 이라고 합니다. Remote Repository에 있는 코드를 Clone 해서 내 컴퓨터로 가지고 올 수 있어요.
내 컴퓨터에서 React 소스코드 변경 작업을 완료했습니다. 그렇다면 이 변경된 내용을 commit을 통해 저장해 준 뒤, Remote Repository에 반대로 올려주는 작업이 필요합니다.
이 과정을 Push 라고 합니다. Local Repository에 기록해 놓은 commit을 Remote Repository로 업로드할 수 있습니다.
이렇게 Push를 완료하고 나면 GitHub에는 Pull request라는 기능이 있어서, 내가 제안한 코드 변경사항에 대해 반영 여부를 요청할 수 있습니다.
그런데 반대 상황도 발생할 거예요. Remote Repository에서 변경 사항이 있을 때 Local Repository 로 가져오는 Pull 작업도 가능합니다.
진짜 오늘이 제일 어렵고 멘탈이 터질거 같았다.