가이드

Git 설정: git config, 이름과 이메일, SSH 키 설정

업데이트: · Skillaria.Top

기본 Git 설정은 git config --global user.name과 git config --global user.email로 커밋에 서명을 붙이고, 편집기와 기본 브랜치를 고르는 것입니다. GitHub에 비밀번호 없이 들어가려면 ssh-keygen -t ed25519로 키를 만들고, 공개 키를 계정 설정에 등록한 뒤 ssh -T git@github.com으로 연결을 확인하세요.

1분 만에 하는 최소 Git 설정

Git을 설치하면 네 가지 명령을 바로 실행하세요. 처음 두 개가 없으면 Git은 커밋을 거부합니다. 나머지는 자주 겪는 불편을 없애 줍니다.

git config --global user.name "Анна Смирнова"
git config --global user.email "anna@example.com"
git config --global init.defaultBranch main
git config --global core.editor "code --wait"

결과를 확인하세요.

$ git config --global --list
user.name=Анна Смирнова
user.email=anna@example.com
init.defaultbranch=main
core.editor=code --wait

이어서 각 설정이 무엇을 하고, Git이 그것을 어디에 저장하며, GitHub에 SSH로 연결하는 방법을 살펴봅니다.

git config 동작 방식: 세 가지 수준

git config는 세 파일 중 하나에서 설정을 읽고 씁니다. 좁은 수준의 설정이 넓은 수준의 설정을 덮어씁니다.

수준옵션파일적용 범위
시스템--system/etc/gitconfig(Windows에서는 Git 설치 폴더)컴퓨터의 모든 사용자
전역--global~/.gitconfig 또는 ~/.config/git/config내 모든 저장소
로컬--local(기본값)저장소 안의 .git/config해당 저장소만

개인 설정은 대부분 전역으로, 예외는 로컬로 설정합니다. 예를 들어 회사 프로젝트에서 쓸 이메일은 --global 없이 해당 저장소 안에서만 설정합니다.

자주 쓰는 git config 명령

git config user.email                    # 현재 값 보기
git config --list --show-origin          # 모든 설정과 출처 파일
git config --global --edit               # ~/.gitconfig를 편집기로 열기
git config --global --unset core.editor  # 설정 삭제

--show-origin은 문제를 디버깅할 때 가장 좋은 도구입니다. "왜 이메일이 다르지?"라는 질문에 값이 어느 파일에서 왔는지 바로 알려 줍니다.

이름과 이메일이 중요한 이유

모든 커밋에는 작성자의 이름과 이메일이 영구히 기록됩니다. 이것은 로그인 정보나 비밀번호가 아니며, Git은 이를 검증하지 않습니다. 하지만 GitHub와 GitLab은 이메일을 기준으로 커밋을 계정과 연결합니다. 주소가 프로필에 등록된 확인된 이메일 중 하나와 일치하지 않으면, 커밋이 활동 그래프에 집계되지 않고 프로필 사진도 표시되지 않습니다.

이름이나 이메일은 기록 후에 히스토리를 다시 쓰지 않고는 바꿀 수 없으므로, 첫 커밋 전에 확인하세요.

이메일 숨기기

저장소가 공개되어 있다면, 히스토리를 보는 누구나 이메일을 볼 수 있습니다. GitHub는 ID+사용자이름@users.noreply.github.com 형식의 가명 주소를 제공합니다(Settings → Emails에서 확인). Git에 이 주소를 입력하세요.

git config --global user.email "12345678+anna@users.noreply.github.com"

회사용과 개인용 이메일 나누기

모든 회사 저장소에 일일이 설정하지 않으려면 조건부 설정 파일을 씁니다. ~/.gitconfig에 다음을 추가하세요.

[includeIf "gitdir:~/work/"]
    path = ~/.gitconfig-work

그리고 ~/.gitconfig-work에는 다음을 넣습니다.

[user]
    email = anna@company.com

이제 ~/work/ 안의 모든 저장소는 자동으로 회사 이메일을 씁니다. 경로 끝의 슬래시는 꼭 있어야 합니다.

그 밖의 유용한 Git 설정

편집기

Git은 커밋 메시지, 대화형 rebase, 병합 때 편집기를 엽니다. 기본값은 자주 Vim입니다. 선택지는 다음과 같습니다.

git config --global core.editor "code --wait"   # VS Code
git config --global core.editor "nano"          # Nano
git config --global core.editor "subl -n -w"    # Sublime Text

기본 브랜치

init.defaultBranch main은 새 저장소의 첫 브랜치 이름을 정합니다(Git 2.28부터 가능). 이 설정이 없으면 Git은 master를 만들고 이름을 바꾸라는 안내를 보여 줍니다.

줄바꿈

git config --global core.autocrlf true    # Windows
git config --global core.autocrlf input   # macOS와 Linux

이렇게 하면 저장소에는 항상 LF 줄바꿈이 저장되고, 팀에서 줄 전체가 바뀐 것처럼 보이는 일이 없습니다.

git pull 동작

전략을 정하지 않으면, 최신 Git은 브랜치가 갈라졌을 때 어떤 방식을 쓸지 명시적으로 고르라고 요구합니다. 하나를 고르세요.

git config --global pull.rebase false   # 병합(merge), 기본 동작
git config --global pull.rebase true    # 재배치(rebase), 선형 히스토리
git config --global pull.ff only        # 빨리 감기만 허용, 아니면 오류

한글 파일 이름과 색상

git config --global core.quotepath false
git config --global color.ui auto

별칭

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --decorate --all"
git config --global alias.last "log -1 HEAD"

이제 git lg는 브랜치 그래프를, git last는 마지막 커밋을 보여 줍니다.

설정 후의 ~/.gitconfig 모습

[user]
    name = Анна Смирнова
    email = anna@example.com
[init]
    defaultBranch = main
[core]
    editor = code --wait
    autocrlf = input
    quotepath = false
[pull]
    rebase = false
[alias]
    st = status
    lg = log --oneline --graph --decorate --all

이것은 평범한 텍스트 파일이므로 직접 편집할 수 있고, 컴퓨터를 옮길 때 그대로 복사해도 됩니다.

git login: GitHub에 로그인하는 방법

Git에는 git login 명령이 없습니다. 초보자가 자주 빠지는 함정입니다. Git은 "계정"을 저장하지 않습니다. 인증은 서버에 접속할 때(clone, push, fetch) 두 프로토콜 중 하나로 이루어집니다.

HTTPSSSH
주소https://github.com/user/repo.gitgit@github.com:user/repo.git
인증 수단액세스 토큰 또는 브라우저 로그인(Credential Manager)SSH 키 한 쌍
계정 비밀번호2021년부터 받지 않음필요 없음
더 나은 경우Git Credential Manager를 쓰는 Windows, 회사 프록시macOS, Linux, 서버, CI

HTTPS로 로그인하기

Git for Windows와 Git Credential Manager를 쓰는 macOS 빌드에서는 처음 git push를 할 때 GitHub 로그인을 위한 브라우저 창이 열리고, 자격 증명은 시스템 저장소에 저장됩니다. 대안으로 공식 도구 GitHub CLI가 있습니다. gh auth login을 실행하면 인증을 안내하고 Git도 설정합니다. 모든 것을 손으로 하려면 GitHub 설정(Developer settings)에서 Personal access token을 만들고, 비밀번호 대신 입력하세요.

Git용 SSH 설정: 단계별 안내

SSH 키는 한 쌍의 파일입니다. 개인 키는 내 컴퓨터에 남고, 공개 키는 GitHub에 줍니다. 서버는 여러분이 개인 키를 가지고 있는지 확인하며, 그 뒤로는 비밀번호를 묻지 않습니다.

1단계. 키가 이미 있는지 확인하기

ls -la ~/.ssh

id_ed25519와 id_ed25519.pub이 이미 있다면 3단계로 넘어가세요.

2단계. 키 만들기

ssh-keygen -t ed25519 -C "anna@example.com"

Enter를 눌러 기본 경로에 저장하고, 암호 구문(passphrase)을 정하세요. 노트북을 도둑맞아도 키를 보호합니다. Ed25519는 현재 권장되는 알고리즘입니다. 오래된 시스템이 이를 지원하지 않는다면 ssh-keygen -t rsa -b 4096 -C "anna@example.com"을 쓰세요.

3단계. ssh-agent에 키 추가하기

에이전트는 풀린 키를 메모리에 보관해서, push할 때마다 암호 구문을 입력하지 않게 합니다.

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

macOS에서는 암호 구문을 키체인에 저장하도록 ~/.ssh/config에 다음을 추가하세요.

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

그리고 ssh-add --apple-use-keychain ~/.ssh/id_ed25519를 실행합니다.

4단계. GitHub에 공개 키 등록하기

cat ~/.ssh/id_ed25519.pub

ssh-ed25519로 시작하는 줄 전체를 복사하세요. GitHub에서 Settings → SSH and GPG keys → New SSH key로 가서, 키를 붙여 넣고 "노트북 2026" 같은 이름을 붙입니다. .pub이 없는 파일은 절대 공유하거나 공개하지 마세요. 그것은 개인 키입니다.

5단계. 연결 확인하기

$ ssh -T git@github.com
Hi anna! You've successfully authenticated, but GitHub does not provide shell access.

처음 연결할 때 SSH는 이 호스트를 신뢰할지 물어봅니다. GitHub 문서에 게시된 지문과 비교한 뒤 yes라고 답하세요.

6단계. 저장소를 SSH로 바꾸기

HTTPS로 클론한 저장소라면 remote 주소를 바꾸세요.

git remote -v
git remote set-url origin git@github.com:anna/my-project.git
git push

한 컴퓨터에서 GitHub 계정 여러 개 쓰기

하나의 SSH 키는 하나의 GitHub 계정에만 연결할 수 있습니다. 회사 계정과 개인 계정을 쓴다면 키를 두 개 만들고, ~/.ssh/config에 호스트 별칭을 정하세요.

Host github-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_work
    IdentitiesOnly yes

회사 저장소는 이 별칭으로 클론합니다: git clone git@github-work:company/app.git. 이메일을 위한 includeIf와 함께 쓰면 회사 환경과 개인 환경이 완전히 분리됩니다.

자주 생기는 설정 오류

"Please tell me who you are"

user.name과 user.email이 없습니다. 이 글의 첫 명령을 실행한 뒤 커밋을 다시 하세요.

"Permission denied (publickey)"

GitHub가 맞는 키를 찾지 못했습니다. 키가 에이전트에 있는지(ssh-add -l), 공개 키가 계정에 등록되었는지 확인하세요. 자세한 내용은 ssh -vT git@github.com이 보여 줍니다.

"Support for password authentication was removed"

HTTPS 작업에서 계정 비밀번호를 입력했습니다. 토큰, Credential Manager 로그인을 쓰거나 SSH로 바꾸세요.

GitHub의 커밋에 프로필 사진이 없음

git config user.email의 이메일이 GitHub 프로필에 추가되지 않았습니다. Settings → Emails에 추가하면, 예전 커밋도 자동으로 연결됩니다.

네트워크에서 22번 포트가 막힘

GitHub는 443번 포트에서도 SSH를 받습니다. ~/.ssh/config에 Host github.com, Hostname ssh.github.com, Port 443을 적으세요.

새 컴퓨터에서 설정하는 순서

  1. Git을 설치하고 git --version을 확인합니다.
  2. user.name, user.email, init.defaultBranch, 편집기를 설정합니다.
  3. 별칭과 pull 전략이 든 ~/.gitconfig를 옮기거나 새로 만듭니다.
  4. 새 SSH 키를 만들고 GitHub에 등록합니다. 필요 없다면 예전 개인 키를 컴퓨터 사이에 복사하지 마세요.
  5. ssh -T git@github.com으로 접속을 확인하고, 작업 저장소를 SSH 주소로 클론합니다.

기기마다 별도의 키를 두면, 노트북을 잃어버렸을 때 GitHub에서 그 키 하나만 지우면 됩니다. 다른 기기의 접근은 그대로 유지됩니다.

정리

Git 설정은 세 단계입니다. git config --global로 이름과 이메일을 정하고, 편집기, 기본 브랜치, pull 전략을 고르고, GitHub에는 SSH 키로 연결하세요. git login 명령은 없으며, 인증은 서버에 접속할 때 이루어집니다. 설정 파일과 SSH 접근의 실습은 Git 강의에서 다룹니다.

자주 묻는 질문

Windows에서 Git 설정 파일은 어디에 있나요?

전역 설정은 C:\Users\이름\.gitconfig에, 저장소별 설정은 각 저장소의 .git\config에 있습니다. 정확한 위치는 git config --list --show-origin으로 확인할 수 있습니다.

Git 설정을 초기화하려면 어떻게 하나요?

~/.gitconfig 파일을 지우거나 이름을 바꾸면 Git은 기본값으로 돌아갑니다. 특정 설정 하나만 지우려면 git config --global --unset 이름을 쓰세요.

GitHub와 GitLab에 같은 SSH 키를 쓸 수 있나요?

네, 같은 공개 키를 여러 서비스에 등록할 수 있습니다. 다만 GitHub에서는 키 하나가 계정 하나에만 연결된다는 제약이 있습니다.

GitHub에서 Verified 표시가 나오도록 커밋에 서명하려면 어떻게 하나요?

GPG 또는 SSH 키로 서명을 설정합니다. 예를 들어 git config --global gpg.format ssh, user.signingkey에 공개 키 경로, commit.gpgsign true를 설정하고, 키를 GitHub에 Signing key로 등록하세요.

Git을 업데이트한 뒤 설정을 다시 해야 하나요?

아니요. 업데이트는 ~/.gitconfig와 ~/.ssh의 키를 건드리지 않으므로 모든 설정이 유지됩니다.

영상으로 이 주제 배우기

이 주제는 “Git 완전 정복: 초보에서 능숙한 개발자로” 강의에서 실습과 함께 자세히 다룹니다.

강의로 이동