GitHub 최초 사용자를 위한 Git 설정 가이드
GitHub에서 코드를 받아오거나 올려보고 싶은데 어디서부터 시작해야 할지 막막하신가요? Git이라는 도구를 깔아야 한다는 건 알겠는데, 설치 후에 뭘 해야 하는지 모르겠다는 분들이 꽤 많습니다.
이 글에서는 Git을 처음 사용하는 분들을 위해 설치부터 GitHub 원격 저장소와 연동하는 것까지 한 번에 정리해보겠습니다. 터미널 명령어가 낯설더라도 하나씩 따라 하다 보면 금방 익숙해질 거예요.
Git 설치하기
Git을 사용하려면 먼저 컴퓨터에 설치가 되어 있어야 합니다. 혹시 이미 설치되어 있는지 확인부터 해볼까요?
$ git --version
git version 2.45.2
이렇게 버전 정보가 나온다면 이미 설치가 되어 있는 것이니 다음 단계로 넘어가시면 됩니다.
command not found가 뜬다면 운영체제에 맞게 설치를 진행해야 하는데요.
macOS에서는 Xcode Command Line Tools를 설치하면 Git이 함께 들어옵니다.
$ xcode-select --install
Homebrew를 쓰고 계신다면 이 방법도 괜찮습니다.
$ brew install git
Windows에서는 Git 공식 사이트에서 설치 파일을 다운로드해서 실행하면 됩니다. 설치 과정에서 여러 가지 옵션을 물어보는데 잘 모르겠으면 기본값 그대로 넘기셔도 됩니다. 설치가 끝나면 “Git Bash”라는 터미널이 함께 생기는데 Windows에서는 이걸 사용하시면 편해요.
Ubuntu를 포함한 Debian 계열 Linux에서는 apt로 간단히 설치할 수 있습니다.
$ sudo apt update && sudo apt install git
사용자 정보 설정하기
Git을 설치한 후에 가장 먼저 해야 할 일은 사용자 이름과 이메일 주소를 등록하는 것입니다. Git은 코드를 변경할 때마다 “누가 이 변경을 했는지” 기록하거든요. 이 정보가 없으면 커밋(commit) 자체를 할 수가 없습니다.
$ git config --global user.name "Dale Seo"
$ git config --global user.email "test@email.com"
--global 옵션을 쓰면 이 컴퓨터에서 하는 모든 Git 작업에 같은 이름과 이메일이 적용됩니다.
프로젝트마다 다른 정보를 쓰고 싶다면 --global 없이 해당 저장소 안에서 설정하면 되는데 처음엔 그냥 전역으로 설정해두는 걸 추천드려요.
이메일 주소는 GitHub 계정에 등록된 것과 같은 걸 사용하는 게 좋습니다. 그래야 나중에 GitHub에서 커밋 이력을 볼 때 내 프로필과 제대로 연결되거든요.
개인 이메일을 커밋 이력에 노출하고 싶지 않다면 GitHub에서 제공하는 noreply 이메일을 사용할 수도 있습니다.
GitHub의 Settings > Emails 페이지에서 ID+username@users.noreply.github.com 형식의 주소를 확인할 수 있는데요, 이 주소를 user.email에 설정하면 커밋이 GitHub 프로필에 정상적으로 연결되면서도 실제 이메일은 공개되지 않습니다.
설정이 잘 됐는지 확인하려면 이렇게 해보세요.
$ git config --global user.name
Dale Seo
$ git config --global user.email
test@email.com
📌
git config명령어에 대해 더 자세히 알고 싶다면 git config 명령어 사용법을 참고하세요.
GitHub 계정 만들기
Git은 로컬에서 코드의 변경 이력을 관리하는 도구이고, GitHub는 그 이력을 온라인에 올려서 다른 사람들과 공유하는 서비스입니다. 둘은 별개이기 때문에 GitHub를 사용하려면 별도로 계정을 만들어야 합니다.
github.com에 접속해서 “Sign up” 버튼을 누르면 가입을 진행할 수 있습니다. 이메일 인증까지 끝나면 준비 완료입니다.
아직 가입하지 않으셨다면 이 글을 읽으면서 같이 만들어보시는 것도 좋겠죠.
인증 방식 이해하기
GitHub에 있는 저장소에 push하거나 비공개 저장소를 clone/fetch/pull할 때는 “이 사람이 정말 권한이 있는 사람인지” 확인하는 과정이 필요합니다.
공개(public) 저장소를 읽기만 할 때는 인증 없이도 가능하지만 코드를 올리거나 비공개(private) 저장소에 접근하려면 반드시 인증을 거쳐야 하죠.
GitHub에서 사용할 수 있는 인증 방식은 크게 두 가지입니다.
HTTPS 방식은 저장소 URL이 https://로 시작합니다.
별도의 사전 설정 없이 바로 쓸 수 있어서 처음에는 편하지만 push를 할 때마다 인증 정보를 입력해야 합니다.
GitHub는 2021년부터 비밀번호 대신 Personal Access Token(PAT)을 사용하도록 변경했기 때문에, 토큰을 발급받아서 비밀번호 자리에 넣어야 합니다.
SSH 방식은 저장소 URL이 git@github.com:으로 시작합니다.
처음에 SSH 키를 생성하고 GitHub에 등록하는 과정이 필요하지만 한번 설정해두면 이후에는 인증 없이 자유롭게 push/pull을 할 수 있습니다.
매번 토큰을 입력하는 건 꽤 번거롭기 때문에 개발을 본격적으로 하신다면 SSH 방식을 셋업해두시는 게 훨씬 편합니다. 이 글에서는 SSH 방식을 기준으로 설명하겠습니다.
SSH 키 생성하기
SSH 키는 공개 키(public key)와 비밀 키(private key) 한 쌍으로 이루어져 있습니다. 비밀 키는 내 컴퓨터에 보관하고 공개 키를 GitHub에 등록해두면 이후에는 GitHub와 통신할 때 자동으로 인증이 됩니다. 비밀번호를 매번 입력할 필요가 없어지는 거죠.
먼저 SSH 키가 이미 있는지 확인해봅시다.
$ ls ~/.ssh
id_ed25519와 id_ed25519.pub 파일이 보인다면 이미 키가 있는 것이니 새로 만들 필요 없이 기존 키를 사용하면 됩니다.
파일이 없거나 .ssh 디렉토리 자체가 없다면 새로 만들어야 합니다.
$ ssh-keygen -t ed25519 -C "john@example.com"
-t ed25519는 암호화 알고리즘을 지정하는 옵션이고, -C 뒤에는 GitHub에 등록한 이메일을 넣어주세요.
실행하면 몇 가지를 물어봅니다.
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/dale/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
파일 저장 경로는 기본값(Enter)으로 넘기면 됩니다. 비밀번호(passphrase)도 비워두셔도 되지만 보안을 좀 더 신경 쓰고 싶다면 설정하셔도 좋습니다. passphrase를 설정하셨다면 ssh-agent에 키를 등록해두면 매번 입력하지 않아도 됩니다.
키가 생성되면 ~/.ssh/ 디렉토리 안에 두 개의 파일이 생깁니다.
id_ed25519— 비밀 키 (절대 외부에 공유하면 안 됩니다!)id_ed25519.pub— 공개 키 (GitHub에 등록할 파일)
SSH 키를 GitHub에 등록하기
생성한 공개 키를 GitHub에 등록해야 인증이 동작합니다.
먼저 공개 키의 내용을 복사합니다.
macOS에서는 이렇게 하면 클립보드에 바로 복사됩니다.
$ pbcopy < ~/.ssh/id_ed25519.pub
Windows(Git Bash)에서는 이렇게 합니다.
$ clip < ~/.ssh/id_ed25519.pub
Linux에서는 cat 명령어로 출력한 뒤 직접 복사합니다.
$ cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... john@example.com
이제 GitHub 웹사이트에서 등록을 진행합니다.
- GitHub의 Settings > SSH and GPG keys 페이지로 이동합니다.
- New SSH key 버튼을 누릅니다.
- Title에는 알아볼 수 있는 이름을 입력합니다. (예: “내 맥북”, “회사 노트북”)
- Key 필드에 복사한 공개 키를 붙여넣습니다.
- Add SSH key 버튼을 눌러 저장합니다.
등록이 끝나면 제대로 연결되는지 테스트해봅시다.
$ ssh -T git@github.com
Hi Dale! You've successfully authenticated, but GitHub does not provide shell access.
이 메시지가 뜨면 SSH 인증이 성공한 것입니다 🎉
처음 연결할 때 “Are you sure you want to continue connecting?”이라고 물어볼 수 있는데, yes를 입력하면 됩니다.
원격 저장소 복제하기 (clone)
이제 GitHub에 있는 저장소를 내 컴퓨터로 가져올 준비가 됐습니다. GitHub 저장소 페이지에서 초록색 Code 버튼을 누르면 URL을 복사할 수 있는데, SSH 탭을 선택해주세요.
$ git clone git@github.com:DaleSeo/my-project.git
이 명령어를 실행하면 현재 디렉토리에 my-project라는 폴더가 만들어지면서 저장소의 모든 파일과 변경 이력이 내려받아집니다.
$ cd my-project
$ ls
README.md src/ package.json
📌
git clone의 다양한 옵션이 궁금하시면 git clone으로 원격 저장소 복제하기를 참고하세요.
변경사항 올리기 (push)
코드를 수정하고 나서 GitHub에 올리는 과정은 크게 세 단계입니다.
먼저 파일을 수정한 뒤 어떤 파일이 변경되었는지 확인합니다.
$ git status
On branch main
Changes not staged for commit:
modified: README.md
올리고 싶은 파일을 스테이징(staging) 영역에 추가합니다.
$ git add README.md
변경 내용을 설명하는 메시지와 함께 커밋합니다.
$ git commit -m "README에 프로젝트 설명 추가"
마지막으로 커밋한 내용을 GitHub에 올립니다.
$ git push origin main
origin은 원격 저장소의 기본 이름이고, main은 브랜치 이름입니다.
처음 git clone을 하면 이 값들이 자동으로 설정되어 있기 때문에 git push만 입력해도 동작합니다.
📌
git push에 대해 더 알고 싶다면 git push 사용법/팁을 참고하세요.
최신 변경사항 가져오기 (pull)
혼자 작업할 때는 별로 쓸 일이 없지만 다른 사람과 함께 작업하거나 여러 컴퓨터에서 작업한다면 원격 저장소의 최신 변경사항을 내려받아야 할 때가 있습니다.
$ git pull
이 명령어는 원격 저장소에서 새로운 커밋을 가져와서 현재 내 로컬 코드에 합쳐줍니다.
작업을 시작하기 전에 습관적으로 git pull을 해두면 충돌(conflict)을 줄일 수 있어요.
📌 merge와 rebase 전략 등 더 자세한 내용은 git pull 사용법과 주의사항을 참고하세요.
전체 흐름 정리
지금까지 설정한 내용을 한눈에 정리해보면 이렇습니다.
1. Git 설치
2. git config로 사용자 이름/이메일 설정
3. SSH 키 생성 (ssh-keygen)
4. GitHub에 공개 키 등록
git clone → 코드 수정 → git add → git commit → git push
↑ |
└────────────── git pull ←─────────────────┘
초기 설정은 컴퓨터 한 대당 한 번만 하면 되고, 이후에는 clone → 수정 → add → commit → push 이 흐름만 반복하면 됩니다.
자주 겪는 문제들
처음 Git을 사용하다 보면 몇 가지 에러를 마주칠 수 있는데요. 당황하지 마시고 아래 내용을 참고해보세요.
Permission denied (publickey) 에러가 나는 경우에는 SSH 키가 제대로 등록되지 않았을 가능성이 높습니다.
ssh -T git@github.com으로 연결 테스트를 해보시고, 실패한다면 SSH 키 등록 과정을 다시 확인해보세요.
Please tell me who you are 에러는 사용자 정보가 설정되지 않았다는 뜻입니다.
git config --global user.name과 git config --global user.email을 설정해주시면 해결됩니다.
Updates were rejected because the remote contains work 에러는 원격 저장소에 내 로컬에 없는 변경사항이 있을 때 발생합니다.
git pull로 먼저 원격의 변경사항을 가져온 뒤 다시 git push를 하면 됩니다.
마치며
Git과 GitHub를 처음 접하면 용어도 낯설고 터미널에서 명령어를 입력하는 것 자체가 부담스러울 수 있습니다.
하지만 이 글에서 다룬 초기 설정은 딱 한 번만 해두면 되고, 이후에는 clone, add, commit, push, pull 이 다섯 가지 명령어만 알아도 기본적인 작업은 충분히 해낼 수 있어요.
Git의 각 명령어에 대해 더 깊이 알고 싶다면 아래 글들도 함께 읽어보세요.
- git config 명령어 사용법
- git clone으로 원격 저장소 복제하기
- git push 사용법/팁
- git pull 사용법과 주의사항
- git remote로 원격 저장소 관리하기
Git 사용법에 익숙해지고 나면 GitHub CLI(gh) 사용법도 한번 살펴보시길 추천합니다. 터미널에서 바로 이슈를 만들거나 PR을 올릴 수 있어서 작업 흐름이 한결 매끄러워집니다.
This work is licensed under
CC BY 4.0