본문 바로가기
C.W.K.
Stream
Lesson 05 of 05 · published

identity, 기본값, .gitignore

~18 min · config, gitignore, setup

Level 0추적 전 새싹
0 XP0/47 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

identity와 기본값, 무시할 파일

개별 프로젝트보다 오래 가는 설정이 세 가지 있어. commit에 어떤 identity를 남길지, 어떤 기본값을 쓸지, 무엇을 추적하지 않을지야. 건너뛰면 언젠가 버그처럼 돌아와. 몇 년치 commit에 잘못된 author가 찍히거나, master branch가 불쑥 생기거나, secret token이 이력에 새는 식으로 말이야.

Git은 모든 commit에 이름과 email을 넣어. global 설정으로 한 번 정해두면 돼. 실제 email을 쓰고 싶지 않다면 GitHub의 noreply 주소로 수집을 피할 수도 있어. 이왕이면 init.defaultBranchmain으로 정하고, 쓸 만한 기본 편집기를 고르고, pull.rebase를 true로 둬서 무심코 실행한 git pull이 느닷없는 merge를 만들지 않게 해. config는 system, global, local 세 층이고 local 값이 앞선다. git config --list --show-origin은 각 값이 어느 파일에서 왔는지 보여줘. 설정이 예상과 다를 때 아주 유용한 단서야.

.gitignore는 '이것만은 이력에 넣지 않겠다'는 목록이야. repo 안의 평범한 파일이며 한 줄에 pattern 하나를 적어. 빌드 결과물, dependency 폴더, OS 찌꺼기, 편집기 swap file, 특히 .env, private key, credential dump 같은 secret이 대상이지. 단, .gitignore는 untracked file에만 영향을 줘. .env를 한 번이라도 commit했다면 ignore에 추가해도 계속 추적돼. 먼저 git rm --cached .env를 실행해야 해. 실제 secret이 들어 있었다면 이미 노출된 것으로 보고 곧바로 rotate해. 파일을 지워도 Git 이력에는 남으니까.

습관을 하나 더 들이자. 적어도 호스트 하나에는, 보통은 GitHub에 SSH key를 연결해둬. HTTPS도 쓸 수 있지만 SSH와 agent를 쓰면 날마다 password를 입력할 필요가 없어. ssh-keygen -t ed25519 -C "you@example.com"으로 key를 만들고 .pub 쪽을 GitHub에 복사하면, 이후 clone할 때 credential을 반복해서 넣지 않아도 돼.

Code

한 번만 해두는 global 설정·bash
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main
git config --global pull.rebase true
git config --global core.editor "code --wait"  # 또는 vim, nano

# 각 값 어디서 왔는지?
git config --list --show-origin
출발점으로 쓸 .gitignore·text
# Build & deps
node_modules/
dist/
build/
__pycache__/
*.pyc

# Editor & OS
.vscode/
.idea/
.DS_Store
Thumbs.db
*.swp

# Secret — 절대 commit 금지
.env
.env.*
*.pem
*.key
credentials.json
secret을 이미 commit했다면·bash
# 추적 중지 (디스크엔 남김)
git rm --cached .env
echo '.env' >> .gitignore
git add .gitignore
git commit -m "Stop tracking .env and ignore it going forward"

# 중요: secret 은 이전 commit 에 여전히 있어.
# 즉시 rotate. git filter-repo / BFG 로 history rewrite 가능하지만,
# 노출됐다고 가정하고 비밀번호/토큰 자체를 바꿔.

External links

Exercise

실제 머신에서 git config --list --show-origin을 실행하고 출력을 읽어. 이름, email, 기본 branch, pull 동작, 편집기 가운데 추가하거나 고칠 설정 세 개를 골라 global에 적용해. 그다음 git init으로 새 repo를 만들고, 실제 사용하는 언어에 맞는 .gitignore 초안을 추가해 commit해. git status에서 일부러 추적하지 않은 path가 적어도 하나는 무시되는지 확인해봐.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.