sy/dev
Study
7 min read

Git 시작하기 — 가장 자주 쓰는 명령어 9개

Git을 처음 만지는 사람이 첫 commit부터 push까지 걸어가는 데 필요한 9개 명령어를 흐름 순서대로 정리한다. config / init / status / add / commit / remote / push / clone / pull.

공부하게 된 계기

Git을 처음 배울 때 명령어가 너무 많아 보인다. 사실 매일 쓰는 건 10개도 안 된다. 그 핵심을 흐름대로 한 번 정리해두면, 그 뒤로 만나는 rebasecherry-pick 같은 명령어는 가지치기일 뿐이다.

이 글은 혼자 → 원격 저장소까지 한 번 걸어보는 흐름이다.

Git이 뭘 하는가

한 문장으로 — 파일의 변경 이력을 스냅샷으로 저장하고, 여러 사람이 그 스냅샷을 공유하게 하는 도구.

세 영역을 머릿속에 그려두면 모든 명령어가 정리된다.

Working Directory   →   Staging Area   →   Repository (.git/)
   (작업 중인 파일)        (commit 대기)        (커밋된 이력)
  • git add: Working → Staging
  • git commit: Staging → Repository
  • git push: Repository → Remote (예: GitHub)

1) git config — 사용자 등록

처음 한 번만 하면 된다.

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

--global은 머신 전체 기본값. 특정 프로젝트만 다르게 쓰고 싶다면 --local을 그 프로젝트 폴더에서 실행한다.

# 회사 이메일로 쓰는 프로젝트에서만
cd ~/work/project-a
git config --local user.email "you@company.com"

설정 확인:

git config --list

2) git init — 빈 저장소 만들기

mkdir my-project
cd my-project
git init

이 폴더에 숨김 폴더 .git/이 생긴다. 이게 바로 저장소다.

3) git status — 지금 상태 확인

이 명령은 정말 자주 친다. 답답할 때마다 친다.

git status

세 가지 상태를 알려준다:

  • Untracked: Git이 아직 모르는 파일
  • Modified: Git이 알고 있는데 바뀐 파일
  • Staged: commit 대기 중인 파일

4) git add — 스테이징

# 특정 파일
git add README.md
 
# 디렉토리
git add src/
 
# 모든 변경
git add .
⚠️

git add .은 편하지만 위험하다. .env, 비밀키, 빌드 결과물이 같이 들어가는 사고가 자주 난다. 먼저 .gitignore를 빠짐없이 채워두고, 의심스러우면 git status로 추가될 파일을 한 번 확인하는 습관이 좋다.

5) git commit — 스냅샷 저장

git commit -m "Add login form"

-m을 빼면 기본 에디터가 열린다. 메시지 컨벤션은 다음 편 Git Convention에서 자세히 다룬다.

이 시점에 그 시점의 staging 내용이 영구히 저장된다. commit은 되돌릴 수 있지만 사라지진 않는다 — Git의 가장 중요한 속성.

6) git remote — 원격 저장소 연결

GitHub에 빈 저장소를 하나 만들어두고:

git remote add origin https://github.com/username/repo.git
git remote -v   # 연결된 원격 확인

origin은 관습적인 이름일 뿐, 다른 이름도 가능하다.

7) git push — 원격으로 업로드

# 첫 push (upstream 지정)
git push -u origin main
 
# 그 다음부터는
git push

-u는 "이 브랜치는 앞으로 origin/main과 짝"이라고 기억시키는 역할. 한 번만 하면 된다.

💡

2020년 이후 GitHub의 기본 브랜치명은 main이다. 옛 자료에 master가 나오면 같은 의미라고 보면 된다.

8) git clone — 남이 만든 걸 복제

git clone https://github.com/vercel/next.js.git
cd next.js

init + remote add + 첫 pull을 한꺼번에 해주는 명령. 협업의 시작점이다.

9) git pull — 원격 변경 가져오기

git pull

다른 사람의 commit을 내 로컬로 가져온다. 내부적으로 git fetch + git merge다. 충돌이 나면 멈추고 사용자에게 해결을 요구한다 — 이게 협업의 첫 관문.

한 사이클 — 처음부터 push까지

# 1. 새 프로젝트 시작
mkdir my-blog && cd my-blog
git init
 
# 2. 코드 좀 쓰기
echo "# My Blog" > README.md
 
# 3. 첫 commit
git add README.md
git commit -m "Initial commit"
 
# 4. GitHub에 빈 저장소 만든 뒤
git remote add origin https://github.com/yourname/my-blog.git
git branch -M main   # 기본 브랜치 이름 main으로
git push -u origin main

여기까지가 모든 Git 사용의 출발점이다.

GitHub 인증 — 토큰

2021년부터 GitHub는 비밀번호 인증을 막았다. 두 가지 옵션:

  1. Personal Access Token (PAT): GitHub Settings → Developer settings → Personal access tokens. HTTPS push할 때 비밀번호 자리에 토큰을 넣는다.
  2. SSH key: ssh-keygen으로 키 만들고, public key를 GitHub에 등록. URL을 git@github.com:user/repo.git 형식으로 쓴다.

장기적으로 SSH 추천. 한 번만 등록하면 토큰 만료 신경 쓸 일이 없다.

자주 막히는 지점

증상원인 / 해결
Author identity unknowngit config --global user.email/.name 안 함
Updates were rejected원격이 더 앞서 있다. git pull 먼저
Permission denied (publickey)SSH 키 미등록 또는 ssh-add 안 됨
.env를 실수로 commitgit rm --cached .env + .gitignore에 추가 + 새 commit. 이미 push했다면 secret을 즉시 폐기

정리 및 다음 편

여기까지가 혼자 쓰는 Git의 전부라고 해도 무방하다. 9개 명령어로 첫 commit부터 push까지 걸어왔다.

다음 편에서는 혼자 쓰더라도 따라야 할 Git Convention — 커밋 메시지 작성법, 브랜치 네이밍, PR 템플릿을 정리한다. 미래의 나에게 친절한 commit 이력을 남기는 법.

다음 편: 혼자 써도 따라야 할 Git Convention

Comments