Git & Github
Git
Git은 본인이 작성한 코드와 이력을 기록하고 관리하도록 돕는 버전관리 시스템이다.
Git은 클라우드가 아니라 나의 로컬시스템에 설치되고 관리된다. 내가 작성하는 코드들을 저장하고 프로그래밍 버젼을 스스로 관리할 수 있다. 로컬에서 관리되기 때문에 인터넷이 필요없고 클라우드 서비스 또한 필요없이 독립적으로 사용할 수 있다.
Git의 중요한 특징은 Branch에 있다. 내 코드에서 새로운 part로 코드를 관리할 수 있는 기능이 Branch이다. 또 다른 독립적인 코드작성 공간을 이용할 수 있다는 점이 특징이다. 브랜치끼리 병합도 가능하며 이전 브랜치로 복구, 삭제 등이 가능하다.
Git은 로컬에서 작성되고 관리되는 특징으로 인해 개발자들끼리 실시간으로 코드를 공유할 수 없다. 프로젝트의 어느 한 부분을 작성한다고 해도 알 수 없다는 점이 단점이다.
Github
Github는 Git 저장소를 관리하는 클라우드기반 호스팅 서비스이다.
Git 저장소는 호스팅 서비스로 설계되었다. Git 호스팅 서비스는 개인의 로컬에 저장된 코드들을 서버 밖에서 Git 버전을 관리하고 공유할 수 있는 온라인 데이터베이스이다. Github는 클라우드 서비스이기 때문에 인터넷이 가능하면 원격으로 작업이 가능하다. Github를 통해 코드공유가 가능하고 실시간으로 하나의 프로젝트를 개발팀이 동시에 코드를 확인하며 작성할 수 있다.
위 그림은 Git이 Github에 호스팅되는 흐름을 간략하게 표현해놓았다. 어려워 보이지만, 하나하나 뜯어보면 어렵지 않다.
아래 로컬의 branch에서 작업한 feature/ 브랜치들은 git add와 git commit으로 git push를 할 수 있다. git push된 코드들은 Github의 클라우드 레퍼지토리에 병합할 수 있다. 해당 코드들이 병합되면 그 코드들을 다시 로컬에서 clone 및 pull로 코드들을 로컬에서 병합할 수 있다.