강의/Git & Github 실무 활용 완벽 가이드

Git 커밋과 로그, 그리고 실용적인 팁

studylida 2025. 2. 3. 11:39

Git 기초: 문서 탐색, 커밋 관리, .gitignore 설정

Git 문서 탐색

Git 명령어와 옵션이 궁금할 때는 공식 문서를 참고하는 것이 가장 정확합니다.

  • 공식 문서: git-scm.comDocumentation 메뉴
  • Reference Manual: 모든 Git 명령어와 옵션을 정리한 섹션
  • Pro Git: Git 사용법을 단계별로 설명하는 책

필요한 정보만 찾아서 익히는 것이 효율적입니다.


커밋을 원자적으로 유지하기

원자적 커밋은 하나의 커밋이 단일 작업이나 기능만 포함하도록 하는 원칙입니다.

장점

  1. 문제 해결 용이: 특정 커밋만 롤백 가능
  2. 코드 리뷰 효율성 증가: 변경 사항이 명확함
  3. 역사 관리가 깔끔해짐: 변경 흐름이 명확함

예:

✅ "Rename Gatsby to Catsby"  
✅ "Create mood board"  
❌ "Rename Gatsby + Add images" (두 가지 작업이 섞임)

각 커밋이 명확한 목적을 가지도록 유지해야 합니다.


커밋 메시지 시제

Git에서는 현재시제(명령형)를 사용하는 것이 일반적입니다.

예시
"Change variable name" (현재시제)
"Changed variable name" (과거시제)

Git 기본 메시지("Merge branch")도 현재시제를 사용하므로 일관성을 유지하는 것이 좋습니다.

하지만 팀의 스타일 가이드가 있다면 해당 규칙을 따르는 것이 중요합니다.


Git 기본 편집기 설정 (VIM → VS Code)

기본적으로 Git은 커밋 메시지 입력 시 VIM을 사용합니다.

VIM에서 빠져나오기

  1. i 키 → 입력 모드 진입
  2. ESC 키 → 입력 모드 종료
  3. :wq + Enter → 저장 후 종료
  4. :q! + Enter → 저장 없이 종료

기본 편집기를 VS Code로 변경

git config --global core.editor "code --wait"
  • --global: 모든 저장소에 적용
  • core.editor: 기본 에디터 설정
  • code --wait: VS Code에서 메시지를 작성하고 창을 닫을 때까지 Git이 기다림

이후 과정

  1. git commit 실행 → VS Code 열림
  2. 메시지 입력 후 저장 & 창 닫기 → 커밋 완료

VS Code가 터미널에서 실행되지 않으면, Command Palette에서 "Shell Command: Install 'code' command in PATH" 실행.


Git 로그 탐색 (git log)

git log는 커밋 이력을 확인하는 명령어입니다.

기본 로그 확인

git log

간략한 커밋 이력 (--oneline)

git log --oneline

출력 예시:

e1a1c3f Fix typo in outline  
b2b2f5a Remove extra blank lines in Chapter2  
9f8d7e4 Create mood board  

기타 옵션

  • --pretty=fuller → 작성자, 날짜 포함한 상세 로그
  • --since="2 weeks ago" → 최근 2주간 커밋 조회
  • --author="John" → 특정 작성자의 커밋 조회

필요한 옵션을 활용하면 커밋 이력을 더욱 효과적으로 탐색할 수 있습니다.


git commit --amend로 실수 수정하기

방금 한 커밋을 수정하는 방법

1. 커밋 후 파일 추가

git add <누락된 파일>
git commit --amend

에디터가 열리면 기존 메시지를 유지하거나 수정 후 저장.

2. 커밋 메시지 수정

git commit --amend

에디터에서 메시지를 수정 후 저장.

주의사항

  • --amend직전 커밋만 수정 가능
  • 원격 저장소에 푸시한 커밋을 변경하면 강제 푸시(git push --force)가 필요하므로 신중해야 함

.gitignore 설정

.gitignore 파일은 Git이 추적하지 않을 파일을 지정하는 역할을 합니다.

무시할 파일 예시

# 운영 체제 파일
.DS_Store

# 민감한 정보
secrets.txt

# 의존성 폴더
node_modules/

# 로그 파일
*.log

.gitignore 생성 및 적용

touch .gitignore  # 파일 생성
nano .gitignore   # 파일 편집
git rm --cached <파일명>  # 기존에 추적 중이던 파일 무시

.gitignore 템플릿 활용

  • gitignore.io에서 프로젝트별 .gitignore 생성 가능

주의: 이미 Git이 추적 중인 파일은 .gitignore에 추가해도 무시되지 않으며, git rm --cached 명령어를 사용해야 적용됩니다.


요약

명령어 설명
git log --oneline 간략한 커밋 이력 확인
git commit --amend 마지막 커밋 수정
git config --global core.editor "code --wait" 기본 편집기를 VS Code로 변경
git rm --cached <파일명> 기존 추적 파일을 .gitignore 적용 가능하게 변경