오도원입니다.

건강과 행복을 위하여

Development/Git

4장. 깃허브로 백업하기

오도원공육사 2020. 2. 6. 14:31
반응형

지금까지 버전들은 모두 사용자의 지역 저장소(local repository)에 저장했다. 이제부터는 인터넷상에 저장할 수 있는 깃허브 서비스에 대해서 알아보자. 깃허브를 통해 백업, 협업을 할 수 있다. 

 

1. 원격 저장소와 깃허브

2. 깃허브 시작하기

3. 지역 저장소를 원격 저장소에 연결하기

4. 원격 저장소에 올리기 및 내려받기

5. 깃허브에 SSH 원격 접속하기

 

1. 원격 저장소와 깃허브

지역 저장소에만 저장하는 것은 안전하지 않다. 그러므로 작업하는 컴퓨터가 아닌 다른 곳에 저장 공간을 마련해야 한다.

 

1) 원격 저장소란

깃에서는 지역 저장소(local repository)와 원격 저장소(remote repository)를 연결해서 버전 관리하는 파일들을 쉽게 백업할 수 있다. 원격 저장소는 지역 저장소가 아닌 컴퓨터나 서버에 만든 저장소를 말한다.

 

2) 깃허브로 할 수 있는 일들

1. 원격 저장소에서 깃을 사용할 수 있다.

2. 지역 저장소를 백업할 수 있다.

3. 협업 프로젝트에 사용할 수 있다.

4. 자신의 개발 이력을 남길 수 있다. => 1일 1커밋 도전!!

5. 다른 사람의 소스를 살펴볼 수 있고, 오픈소스에 참여할 수도 있다.

 

2. 깃허브 시작하기

가입하는 과정은 생략.

 

1) 깃허브에 원격 저장소 만들기

1
2

저장소를 만들었다면 위에 HTTPS 주소를 통해 언제든지 깃허브 저장소에 접속할 수 있고, 파일을 올릴 수도 있다. 즉, 해당 저장소 주소를 사용해서 지역 저장소를 백업하거나 타인과 협업할 수 있다.

 

HTTPS로 접속하는 주소 형태

http://github.com/아이디/저장소명

 

3. 지역 저장소를 원격 저장소에 연결하기

1) 지역 저장소 만들기

새 디렉토리 초기화
커밋

2) 원격 저장소에 연결하기

 

$ git remote add origin [레포지토리 주소]

이 명령은 원격 저장소(remote)에 origin을 추가(add)하는 것이다. 여기서 origin은 깃허브 저장소 주소(https://github.com/아이디/저장소명)을 가리킨다. 이렇게 지역 저장소를 특정 원격 저장소에 연결하는 것은 한번만 하면 된다. 

 

참고) 깃에서 기본 브랜치를 master라고 하는 것처럼 기본 원격 저장소를 origin이라는 이름을 사용한다.

 

origin이 이미 존재한다는 오류가 발생했다. origin을 삭제해서 다시 진행하자

 

다시 remote와 local을 연결한 후 제대로 연결되었는지 확인해보자.

$ git remote -v

 

4. 원격 저장소에 올리기 및 내려받기

지역 저장소의 소스를 원격 저장소로 올리는 것을 '푸시(push)'라고 하고, 원격 저장소에서 지역 저장소로 내려받는 것을 '풀(pull)'이라고 한다.

 

$ git push -u origin master

지역 저장소의 브랜치를 origin, 즉 원격 저장소의 master 브랜치로 푸시하라는 명령이다. '-u' 옵션은 지역 저장소의 브랜치를 원격 저장소의 master 브랜치에 연결하기 위한 것으로 처음에 한번만 사용하면 된다.

f1.txt가 원격 저장소로 올라와 있다.

한번이라도 지역 저장소(local)과 원격 저장소(remote)를 연결해서 푸시했다면 그 다음부터는 더 간단하다. 

 

f1.txt 수정 후 커밋

$ git push

바로 git push

이미 앞에서 지역 저장소의 브랜치와 origin의 master 브랜치를 연결했기 때문에 다시 파일을 푸시할 때는 git push라고만 입력하면 된다. 

 

1) 깃허브 사이트에서 직접 커밋하기

 

1
2
3
4

 

2) 원격 저장소에서 파일 내려받기 - git pull

원격 저장소(remote)의 소스를 지역 저장소(local)로 가져온다. 이것을 '풀(pull)한다'고 한다.

현재 local-git 디렉토리에는 f1.txt 파일만 존재한다. 

 

$ git pull origin master

다음 명령은 origin(원격 저장소)의 내용을 master 브랜치로 가져온다는 뜻이다. 지역 저장소의 기본 브랜치가 master이기 때문에 'git pull'만 입력해도 된다.

 

 

5. 깃허브에 SSH 원격 접속하기

Secure Shell, 줄여서 SSH라는 방법을 통해 깃허브에 접속하는 법을 알아보자.

 

1) SSH 원격 접속이란

SSH에서는 기본적으로 프라이빗 키(private key)와 퍼블릭 키(public key)를 한 쌍으로 묶어 컴퓨터를 인증한다. 퍼블릭 키는 외부로 공개되는 키이고, 프라이빗 키는 아무도 알 수 없게 사용자 컴퓨터에 저장되는 키이다. 사용자 컴퓨터에서 SSH 키 생성기를 실행하면 프라이빗 키와 퍼블릭 키가 만들어진다. 

 

일반적으로 깃허브의 원격 저장소에 파일을 올리는 등의 작업을 하기 위해서는 아이디와 비밀번호를 입력해서 깃허브에 계정을 인증해야 한다. 이에 비해 SSH 원격 접속은 프라이빗 키와 퍼블릭 키를 사용해 현재 사용하고 있는 기기를 깃허브에 인증하는 방식이다. 예를 들어, 서버 환경에서 깃허브 저장소에 접속한다면 서버 자체를 깃허브에 등록하고, 개인 노트북으로 접속한다면 노트북을 깃허브에 등록한다. 

 

2) SSH 키 생성하기

홈 디렉토리에서 다음 명령어를 입력한다.

$ ssh-keygen

SSH키가 저장되는 디렉토리 경로가 표시되면서 파일 이름을 입력하라고 나온다. 그냥 enter를 치고 넘어간다.

빨간 박스에서 위가 프라이빗 키(id_rsa)의 경로이고, 그 아래가 퍼블릭 키(id_rsa.pub)의 경로이다.

 

확인해보자.

$ cd~/.ssh
$ ls -al

id_rsa가 프라이빗 키이고, is_rsa.pub이 퍼블릭 키이다.

 

3) 깃허브에 퍼블릭 키 전송하기

SSH 방식으로 접근하는 과정에 대해서 먼저 알아보자.

 

1. 사용자 컴퓨터에 만들어져 있는 퍼블릭 키를 깃허브 서버로 전송한 다음 저장한다.

2. 사용자 컴퓨터에서 깃허브 저장소에 접속하면 사용자 컴퓨터에 있는 프라이빗 키와 깃허브 서버에 퍼블릭 키를 비교한다.

3. 퍼블릭 키와 프라이빗 키는 한 쌍이므로 두 개의 키가 서로 맞으면 사용자 컴퓨터와 깃허브 저장소가 연결된다.

 

그러면 SSH 키를 만들었으니 퍼블릭 키를 깃허브에 올리자. 퍼블릭 키가 담겨 있는 id_rsa.pub 파일의 내용을 확인해보자.

$ cd ~/.ssh
cat id_rsa.pub

이것이 퍼블릭 키에 담긴 내용이다. 이 내용을 깃허브 서버에 올려야 한다. ssh-rsa부터 문자열 끝까지 선택한 후 복사한다.

setting으로 이동

SSH 중 퍼블릭 키는 여러 개를 등록할 수 있기 때문에 Title 항목에 현재 등록하는 SSH 퍼블릭 키를 쉽게 알아볼 수 있도록 제목을 붙인다. 그리고 Key 항목에 앞에서 복사한 퍼블릭 키 값을 넣는다. 그리고 Add SSH key를 눌러 SSH 키를 추가한다.

 

비밀번호 입력하면 만들었던 SSH 키 중에서 퍼블릭 키르 깃허브 서버에 올렸다. 이제 SSH키를 만들었던 컴퓨터는 깃허브 저장소의 SSH 주소만 알고있으면 로그인 정보를 입력하지 않고 즉시 그 저장소에 접속할 수 있다.

 

4) SSH 주소로 원격 저장소 연결하기

이제 SSH 주소를 사용해 지역 저장소와 원격 저장소를 연결해보자.

새 디렉토리 생성
SSH 주소를 선택 후 SSH 주소를 복사한다.

$ cd ~
$ git init connect-ssh
$ cd connect-ssh

홈 디렉토리에 connect-ssh 저장소를 만든 후 해당 디렉토리로 이동한다.

$ git remote add origin 복사한 주소 붙여넣기

SSH 주소를 사용해 원격 저장소에 연결하는 방법은 HTTPS 주소를 사용할 때와 같다.

이제부터는 원격 저장소를 사용하는 동안 로그인 정보를 요구하지 않기 때문에 편하게 푸시, 풀을 할 수 있다.

반응형