Backup의 필요성
컴퓨터는 언젠가 반드시 고장나기 때문에 파일의 유지를 위해서는 다른 컴퓨터에도 저장을 해두어야한다. 자신이 일일이 다른 컴퓨터에 저장해둘 수도 있지만 이 방법은 매우 비효율적인 방법이다. 이를 해결할 수 있는 방법이 hosting 서비스 이다.
hosting 서비스란 인터넷에 연결되어서 원격으로 사용될 수 있는 서버를 임대해주는 사업
이다.
git hosting 서비스란 작업 중인 로컬 저장소의 버전을 업로드할 원격 저장소를 임대해주는 사업이다. 예시로 github, gitlab 등이 있다.
바로 이 git hosting 서비스를 이용하여 우리의 작업물을 안전하게 보관할 수 있게 된다.
git hosting 도식화

Backup의 순서
- github에 저장소를 생성한다. (new repository)
- 이미 존재하는 로컬 저장소 1를 원격 저장소에 연결한다. (맨 처음에는 인증이 필요하다.
- push를 통해 원격 저장소에 로컬 저장소 1의 버전을 업로드 한다.
- 맨 처음 clone을 통해 원격 저장소의 내용을 로컬 저장소 2에 복제한다.
- 그 후에는 pull을 통해 원격 저장소의 내용을 로컬 저장소 2에 가져온다.
- 로컬 저장소 2에서 작업한 것을 commit하고 원격저장소로 push한다.
- 이처럼 한번 원격 저장소와 연결되면 pull - 작업 - commit - push를 통해 최신 상태로 계속 백업한다.
git 명령어
- git remote add origin 주소(HTTPS) : github에서 repository의 주소를 복사하여 주소자리에 붙여넣는다. 주소를 항상 외울수 없으므로 origin 이라는 별명으로 관리하며 origin은 암묵적으로 통용되는 별명이다.
- git remote : 현재 원격 저장소의 별명이 출력된다.
- git remote -v : 현재 원격 저장소의 주소가 출력된다.
- git push : 원격 저장소에 업로드한다.
- git clone 주소(HTTPS) directory이름 : 주소에는 github에서 repository의 주소를 복사하여 주소 자리에 붙여넣고 directory이름에는 본인이 설정하고싶은 directory 이름을 입력하면 된다. 이를 통해 원격 저장소의 내용이 복제된다.
- git pull : 원격 저장소의 내용을 가져온다.
참고사항
- 저장소의 통신 방법으로 HTTP와 SSH 방식이있다. HTTP는 보안이 낮은 대신 초보자가 하기 쉽고 SSH는 보안이 높은 대신 초보자가 하기에 어렵다. HTTP 방식으로 할 때 일일히 인증하는 불편함이 생길 수 있는데 이 때는 SSH 방식으로 한다면 이 불편함을 해결할 수 있다.
- git hosting의 기능 중 issue tracker 기능이 있다. 이 기능을 사용하면 todo리스트, 게시판, 처리해야할 문제 마킹, 협업 시 업무 분담을 효율적으로 할 수 있는 강력한 기능이다.
- 협업 시 버전 관리 시스템은 필수적이다. 협업 시 문제 되는 것은 동시 작업 시 충돌(Conflict)가 날 수 있다는 점이다. 하지만 Conflict 는 git으로 잘 관리하고 수정할 수 있기 때문에 두려워할 필요가 없다.