서버


분산형 버전 관리 깃은 다양한 유형의 저장소를 지원합니다. 저장소는 크게 로컬 저장소와 서버 저장소로 구분할 수 있습니다. 이 장에서는 서버 저장소를 알아보겠습니다.


서버 저장소


서버 저장소는 다른 말로 원격(remote) 저장소라고도 합니다. 서버 저장소는 로컬 저장소의 코드를 복제한 복사본이라고 할 수 있습니다. 서버를 이용하면 코드를 안전하게 보관할 수 있습니다. 또 서버에 있는 소스 코드는 다른 사람들과 공유하고 협업하여 개발을 진행할 수도 있습니다.


깃허브 서버 준비


독립적인 깃 서버를 직접 운영하여 사용할 수 있습니다. 하지만 365일 안정적인 서버를 운영하는 것은 쉽지 않습니다. 직접 서버를 운영하지 않아도 전문적인 깃 호스팅으로 서버를 대체할 수 있습니다. 호스팅을 받으면 직접 서버를 관리하지 않아도 쉽게 원격 저장소를 운영할 수 있습니다.


깃허브 연동 및 원격 등록


깃허브에 새 저장소를 생성했다면 이제 로컬 저장소와 연결해야 합니다. 기존 로컬 저장소와 연결하거나 새 로컬 저장소를 생성하여 연결할 수도 있습니다.


서버 전송


로컬 저장소의 커밋을 원격 저장소로 전송하는 방법을 알아보았습니다. 원격 저장소가 연결되면 로컬 저장소의 커밋들을 업로드할 수 있습니다.


자동으로 내려받기


원격 저장소에서 커밋된 코드를 내려받는 방법을 알아보겠습니다.

  • clone: 복제
  • pull: 서버에서 내려받기


수동으로 내려받기


원격 저장소 내용을 내려받는 방법은 크게 두 가지입니다. pull(풀)과 fetch(페치)입니다. 이 두 방법의 차이는 병합을 자동 처리하는지 여부입니다. 병합은 8장에서 자세히 설명합니다. 이 장에서는 페치 병합 방법만 알고 넘어갑니다.


순서


원격 저장소에는 다수의 개발자가 동시에 커밋을 푸시할 수 없습니다. 여러 명이 협력해서 개발할 때는 순차적으로 푸시해야 합니다.


정리


깃은 코드 이력을 관리해 줄 뿐만 아니라 다른 개발자와 협업 도구로도 많이 사용합니다. 다른 개발자와 협업하려면 공유 매개체의 역할을 수행할 서버가 필요합니다. 깃은 다양한 종류의 서버를 지원합니다. 깃 서버를 직접 만들 수도 있고, 인기 있는 깃 호스팅 서비스를 이용할 수도 있습니다.

깃은 서버 역할을 수행하는 원격 저장소와 커밋 정보들을 주고받습니다. 로컬 컴퓨터는 원격 저장소에 커밋 코드를 전송하거나 추가된 커밋들을 내려받을 수 있습니다. 이러한 원격 저장소 기능은 좀 더 많은 사람이 깃을 사용하게 하는 촉매제가 되었습니다. 원격 저장소를 불특정 다수를 대상으로 공유할 수도 있습니다. 오픈 소스는 깃과 공개된 원격 저장소를 사용하여 활발하게 수많은 사람과 협업할 수 있는 장점들을 제공합니다. 그래서 깃은 오픈 소스를 활성화하는 데 가장 많은 기여를 하는 협업 툴이 되었습니다.



깃교과서

버전 관리 시스템의 이해와 설치부터 커밋, 브랜치, 임시 처리, 병합, 복귀, 서브모듈, 태그까지
깃, 소스트리, 깃허브로 실습하며 기본기를 탄탄하게 다진다!