identity, default, ignore file
모든 프로젝트보다 오래 가는 setup 세 가지가 있어: commit 안에서 너 누구인지, default 어떤 거 받아들일지, 뭘 추적 거부할지. 이거 건너뛰면 나중에 bug 로 다시 만나. 몇 년치 commit 에 잘못된 author, master branch 가 깜짝 등장, secret token 이 history 에 새는 식으로.
Git 은 모든 commit 에 이름과 email 을 박아. global 로 한 번 설정해. email 은 실제 거 안 써도 돼 — GitHub noreply 주소 많이 써서 scraping 피해. 하는 김에 init.defaultBranch 를 main 으로, 합리적인 default editor 설정, pull.rebase 를 true 로 해서 blind git pull 이 mystery merge 안 만들게. config 는 system / global / local 세 층이고 local 이 항상 이겨. git config --list --show-origin 은 각 값이 어느 파일에서 왔는지 알려줘 — 깜짝 놀랄 때 디버깅 황금이야.
.gitignore 는 '이거 history 에 들어가면 안 돼' 의 답이야. repo 안 그냥 파일이고 한 줄에 한 pattern: build output, dependency 폴더, OS 쓰레기, editor swap file, 그리고 결정적으로 .env, private key, credential dump 같은 secret. 함정: .gitignore 는 untracked file 만 영향 줘. .env 한 번이라도 commit 했으면 ignore 추가해도 추적 계속돼. git rm --cached .env 먼저 해야 해. 그리고 진짜 secret 이 들어 있었으면 노출됐다고 보고 rotate — Git history 는 영원해, 삭제 후에도.
습관 하나 더: 호스트 하나라도 (default 는 GitHub) SSH key 붙여. HTTPS 도 되지만 SSH + agent 가 매일 password 프롬프트 없애주고 표준 개발자 경험이야. ssh-keygen -t ed25519 -C "you@example.com", .pub 절반을 GitHub 에 복사하면 그 다음부터 clone 할 때 credential 안 쳐도 돼.