Git

Git - 호스팅 서비스와 원격 리포지토리

Namiz_IT 2024. 7. 24. 17:06
반응형

 

 지난 글에서 로컬 리포지토리와 원격 리포지토리라는 두 가지 유형의 리포지토리에 대해 설명했다. 로컬 리포지토리는 컴퓨터에 저장되는 반면 원격 리포지토리는 클라우드에 있는 호스팅 서비스에 저장된다. 또한 호스팅 서비스는 Git을 사용하여 프로젝트를 호스팅하는 서비스를 제공하는 회사라고 언급했다.

 이 책에서는 세 가지 주요 Git 호스팅 서비스인 GitHub, GitLab, Bitbucket에 대한 정보를 제공한다. 로컬 리포지토리와 호스팅 서비스의 원격 리포지토리 간에 데이터를 전송하려면 SSH 또는 HTTPS를 사용하여 연결 및 인증해야 한다.

 git push, git clone, git fetch, git pull과 같은 명령어를 사용하여 원격 리포지토리에서 데이터를 업로드 및 다운로드할 수 있다. 이 명령어를 사용하고 원격 리포지토리에 연결하려면 사용하려는 프로토콜에 대한 인증 정보를 준비해야 한다.

 이 장에서는 먼저 호스팅 서비스를 선택한 다음 HTTPS 또는 SSH를 통해 원격 리포지토리에 대해 인증 정보를 설정한다.


호스팅 서비스 계정 설정

 앞서 언급했듯이 이미 사용하고 있는 호스팅 서비스가 있고 이 책의 연습에 사용하려는 경우 해당 호스팅 서비스 웹사이트에서 계정에 간편하게 로그인만 하면 된다.

 호스팅 서비스를 처음 사용하는 경우 어떤 서비스를 사용할지 선택하고 계정을 만들어야 한다. 세 가지 주요 호스팅 서비스는 GitHub, GitLab, Bitbucket이다.

 어떤 서비스를 사용할지 잘 모르겠다면 이 책의 레인보우 프로젝트 예시 출력에 사용된 서비스이기도 하여 가장 인기가 많은 GitHub를 사용하는 것이 좋다.


인증 자격 증명 설정

 원격 리포지토리를 만들 때 다음 두 가지 방법으로 변경할 수 있다.

  1. 호스팅 서비스 웹사이트를 통해 로그인하여 직접 변경한다.
  2. 로컬 리포지토리에서 변경 사항을 만들어 호스팅 서비스의 원격 리포지토리에 업로드한다.

 두 경우 모두 인증, 즉 본인 확인이 필요하다. 인증은 누가 호스팅 서비스 계정에 로그인하고 누가 원격 리포지토리에 변경 사항을 업로드할 수 있는지 제어하는 데 중요하다.

 첫 번째 경우에는 사용자 이름 또는 이메일 주소와 비밀번호를 사용하여 호스팅 서비스 계정에 인증하고 로그인한다. 하지만 두 번째 경우는 어떨까요? 호스팅 서비스는 로컬 리포지토리에서 원격 리포지토리로 업로드를 허용해야 하는지 어떻게 알 수 있을까?

 답은 선택한 프로토콜을 통해 인증해야 한다는 것입니다. 이 장에서는 HTTPS 및 SSH 프로토콜을 다루겠다. 이 중 하나만 설정하면 되며 원하는 것을 선택할 수 있다.


HTTPS 사용

 HTTPS 프로토콜은 사용자 이름과 일종의 비밀번호(또는 인증 자격 증명)를 사용하여 원격 리포지토리에 안전하게 연결할 수 있도록 한다. 과거에는 모든 호스팅 서비스에서 HTTPS 인증을 위해 호스팅 서비스 계정에 로그인하는 데 사용하는 비밀번호(계정 비밀번호라고 함)를 사용할 수 있었다. 그러나 GitHub 및 Bitbucket은 더 이상 이를 허용하지 않고 사용자가 다른 인증 자격 증명을 만들도록 요구한다. GitHub에서는 이 인증 자격 증명을 개인 액세스 토큰이라고 부르고, Bitbucket에서는 앱 비밀번호라고 한다. GitLab에서는 계정 비밀번호를 사용하여 여전히 인증할 수 있다.

 

호스팅 사용자 정보 계정/비밀번호
GitHub 이메일 주소 또는 사용자 이름 개인 액세스 토큰
GitLab 이메일 주소 또는 사용자 이름 계정 비밀번호
Bitbucket 이메일 주소 또는 사용자 이름 앱 비밀번호

SSH 사용

 SSH는 HTTPS보다 안전하고 편리한 또 다른 인증 방법이다. SSH를 사용하려면 먼저 로컬 컴퓨터에 SSH 키를 생성해야 합니다. SSH 키는 두 개의 파트로 구성된다.

  • 공개 키 : 원격 리포지토리 소유자에게 제공하는 키
  • 개인 키 : 로컬 컴퓨터에 저장하고 비밀번호로 보호하는 키 

 원격 리포지토리 소유자는 공개 키를 사용하여 로컬 컴퓨터에서 오는 모든 요청을 인증한다. 개인 키는 로컬 컴퓨터에서만 사용되므로 비밀번호를 안전하게 보관하는 것이 중요하다.

 

SSH 키를 생성하는 방법은 다음과 같다.

  1. 터미널을 연다.
  2. 다음 명령어를 실행합니다.
ssh-keygen
  1. 키 파일 이름을 입력하라는 프롬프트가 표시됩니다. 기본값은 id_rsa이며, 원하는 경우 다른 이름을 지정할 수도 있다.
  2. 엔터 키를 누른다.
  3. 개인 키에 대한 비밀번호를 입력하라는 프롬프트가 표시된다. 비밀번호를 설정하는 것이 좋지만 필수는 아니다. 비밀번호를 설정하지 않으면 누구나 개인 키를 사용하여 로컬 컴퓨터에 액세스할 수 있다.
  4. 엔터 키를 누른다.
  5. 키가 생성됩니다. id_rsa (또는 지정한 이름) 및 id_rsa.pub라는 두 개의 파일이 현재 디렉토리에 생성된다.

다음은 SSH 키를 사용하여 원격 리포지토리에 연결하는 방법이다.

 

1. 원격 리포지토리의 URL 복사

원격 리포지토리의 URL은 GitHub, GitLab 또는 Bitbucket 계정 페이지에서 찾을 수 있다. URL은 일반적으로 다음과 같은 형식이다.

git@github.com:<username>/<repository-name>.git

 

여기서:

  • <username>은 GitHub 계정 사용자 이름이다.
  • <repository-name>은 리포지토리 이름이다.

예를 들어, 다음은 GitHub에 있는 "your-repository"라는 이름의 리포지토리의 URL이다.

git@github.com:your_username/your-repository.git

 

2. SSH 키를 원격 리포지토리에 추가

다음 명령어를 사용하여 로컬 컴퓨터의 SSH 공개 키를 원격 리포지토리에 추가한다.

ssh-keygen -t rsa

 

여기서:

  • <remote-repo-url>은 위에서 복사한 원격 리포지토리의 URL이다.

예를 들어 다음 명령어는 "your-repository"라는 이름의 GitHub 리포지토리에 SSH 공개 키를 추가한다.

ssh-keygen -t rsa git@github.com:your_username/your-repository.git

 

3. 원격 리포지토리에 대한 SSH URL 확인

원격 리포지토리에 대한 SSH URL을 확인하려면 다음 명령어를 실행한다.

git remote -v

 

출력은 다음과 같을 것이다.

origin  git@github.com:your_username/your-repository.git (ssh)

 

4. 로컬 브랜치를 원격 리포지토리에 푸시

이제 로컬 브랜치를 원격 리포지토리에 푸시할 수 있습니다. 다음 명령어를 실행한다.

git push origin <branch-name>

 

여기서:

  • <branch-name>은 푸시하려는 로컬 브랜치의 이름이다.

예를 들어 다음 명령어는 "main"이라는 로컬 브랜치를 "your-repository"라는 이름의 GitHub 리포지토리에 푸시한다.

git push origin main

 

이제 SSH를 사용하여 로컬 리포지토리를 원격 리포지토리에 연결하고 변경 사항을 푸시할 수 있다.


문서 참조

https://www.oreilly.com/library/view/learning-git/9781098133900/

반응형

'Git' 카테고리의 다른 글

Git - 복제와 가져오기(Cloning and Fetching)  (0) 2024.07.27
Git - 원격 저장소(Remote Repository) 생성 및 푸시(Push)  (0) 2024.07.24
Git - 병합(Merging)  (0) 2024.07.24
Git - 브랜치(Branches)  (0) 2024.07.23
Git - 커밋(Commit)  (0) 2024.07.23