본문 바로가기
코딩 공부/Git

Github 새로운 저장소 만들고 로컬 저장소 연동하기

by JH-M 2023. 5. 11.

실행환경: Mac, Terminal, zsh

이 글에서는 Github에 새로운 저장소를 만들고, 로컬 저장소를 생성하여 연동하는 과정을 설명합니다. 또한, SSH 키를 생성하고 Github에 등록하는 방법도 함께 다룹니다.


🚀 Github 새로운 저장소 만들기

➊ Github 홈페이지 접속: github.com

➋ 사이트 상단 메뉴에서 + 버튼을 누르고 New Repository를 누릅니다.

➌ 원하는 저장소 이름을 입력합니다. 저는 My-Project로 입력하였습니다.

➍ 공개(Public)로 할지 비공개(Private)로 할지 선택합니다.

➎ 하단에 Create repository 버튼을 눌러서 저장소 생성을 완료합니다.

➏ 저장소 생성을 완료하면 새로 만들어진 저장소 페이지가 보여집니다.

📤 로컬 저장소 생성하고 Github 푸시하기

화면 가운데 다음과 같이 새 저장소를 생성하는 터미널 명령어가 보입니다.

위 명령어를 터미널에서 순서대로 실행해주세요.

echo "# My-Project" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:jh/My-Project.git
git push -u origin main

에러가 나지 않고 업로드가 완료되었다면 여기서 튜토리얼을 종료합니다. 🎉

만약 Github에 내가 사용하는 컴퓨터의 ssh 키가 등록되어 있지 않다면 다음과 같이 에러가 발생할 수 있습니다.

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

에러를 해결하기 위해서 Github에 ssh 키를 준비하고 등록해줘야 합니다. 다음단계로 넘어가 주세요.

📋 SSH 키 복사하기

먼저 SSH 키가 있는지 확인해 봅니다.

ls ~/.ssh/id_*

id_ed25519.pub 파일이 출력된다면 다음명령으로 공개키를 복사해주세요.

pbcopy < ~/.ssh/id_ed25519.pub

공개키 복사를 완료했으면 🔑 SSH 키 생성하기 단계를 건너뛰고 🔐 SSH 키 등록하기 단계로 넘어가 주세요

id_ed25519.pub 파일이 출력되지 않을 경우 🔑 SSH 키 생성하기 단계에서 키를 생성해 주세요.

🔑 SSH 키 생성하기

Github 프로필과 일치하는 이메일 주소로 다음 명령어를 실행해 주세요.

ssh-keygen -t ed25519 -C "jh@gmail.com"

다음과 같이 키를 저장하는 위치를 물어보는 프롬프트에서 그냥 엔터키를 눌러서 넘어갑니다.

Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/JH/.ssh/id_ed25519):

마찬가지로 키에대한 암호설정은 물어보는데 그냥 엔터키를 눌러서 넘어갑니다.

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

다음과 같이 출력되면 키 생성이 완료된 것입니다.

Your identification has been saved in /Users/JH/.ssh/id_ed25519
Your public key has been saved in /Users/JH/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:----key---- jh@gmail.com
The key's randomart image is:
+--[ED25519 256]--+
|=+o ooo+=B+o     |
|o+o..oo.o.B  .   |
|  . .            |
|                 |
+----[SHA256]-----+

백그라운드에서 ssh-agent를 시작합니다.

eval "$(ssh-agent -s)"

먼저 ~/.ssh/config 파일이 기본 위치에 있는지 확인합니다.

open ~/.ssh/config

파일이 없으면 파일을 만들고 파일을 열어주세요.

touch ~/.ssh/config
open ~/.ssh/config

config 파일을 다음과 같이 수정해 주세요.

Host github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

ssh-agent에 SSH 프라이빗 키를 추가하고 키 집합에 암호를 저장합니다. 다른 이름으로 키를 만들거나 이름이 다른 기존 키를 추가하는 경우 명령의 id_ed25519 를 프라이빗 키 파일의 이름으로 바꿉니다.

ssh-add --apple-use-keychain ~/.ssh/id_ed25519

다음 명령으로 공개키를 클립보드에 복사해줍니다.

pbcopy < ~/.ssh/id_ed25519.pub

🔐 SSH 키 등록하기

Github 사이트 상단에 사용자 메뉴를 클릭하고 Settings를 클릭합니다.

Settings 페이지에서 왼쪽 메뉴 중에 SSH and GPG Keys를 선택합니다.

New SSH Key를 클릭합니다.

🔑 SSH 키 생성하기 또는 🔐 SSH 키 등록하기 단계에서 복사한 공개키를 붙혀넣고 Add SSH Key 버튼을 눌러서 키 등록을 완료합니다.

📤 다시 Github 푸시하기

📤 로컬 저장소 생성하고 github 푸시하기단계에서 에러가 발생했던 명령을 다시 수행해주겠습니다.

git push -u origin main

다음과 같이 최초 Github에 접속시 키에대해서 물어본다면 yes 를 입력하고 엔터키를 눌러줍니다.

조금전에 키를 생성하고 등록하였다면 다음과 같이 메시지가 출력될 것입니다.

Are you sure you want to continue connecting (yes/no/[fingerprint])?

이 메시지는 Git 클라이언트가 처음으로 GitHub 서버에 연결할 때 발생하는 것입니다. Git 클라이언트는 SSH를 통해 GitHub 서버에 연결하려고 시도하고 있으며, 해당 서버의 공개 키를 확인하기 위한 안내 메시지입니다.

GitHub 서버 연결을 위해서 yes를 입력하여 계속 진행하겠습니다.

다음과 같이 메시지가 출력된다면 GitHub로 업로드가 완료된 것입니다.

This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 229 bytes | 229.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:jh/My-Project.git
 * [new branch]      main -> main
branch 'main' set up to track 'origin/main'.

GitHub의 생성한 저장소 페이지에 들어가면 다음과 같이 업로드가 완료되어 README.md 파일이 추가되어 있는것을 확인할 수 있습니다.


🌟 결론

이 튜토리얼은 Mac, Terminal, Zsh 환경을 기준으로 작성되었습니다. 다른 환경에서 작업하시는 경우, 명령어 및 설정이 약간 다를 수 있습니다.

지금까지 GitHub에서 새로운 저장소를 만들고 로컬 저장소와 연동해 보았습니다.🎉

감사합니다.😊

댓글