Git이란?
커밋·브랜치·병합과 복구 기본
코드 변경 이력을 기록하고 비교하며 안전하게 협업하도록 돕습니다.
Git은 무엇인가요?
Git은 파일 변경 이력을 커밋 단위로 기록하고 여러 사람이 각자의 작업을 병렬로 합칠 수 있게 하는 분산 버전 관리 시스템입니다.
Git의 핵심 가치는 명령어 암기가 아니라 변경 이유를 작게 남기고, 비교하고, 안전하게 되돌릴 수 있다는 데 있습니다.
먼저 이해할 핵심 개념
도구 이름보다 각 요소가 맡는 책임과 서로 연결되는 방식을 먼저 이해하는 것이 좋습니다.
작업 트리와 스테이지
수정한 파일 중 다음 커밋에 넣을 변경을 선택합니다.
커밋
하나의 의도와 설명을 가진 복원 가능한 변경 지점입니다.
브랜치
독립적인 작업 흐름을 가볍게 가리키는 포인터입니다.
병합과 리베이스
갈라진 이력을 합치거나 기준 위에 다시 정렬합니다.
실무에서 함께 쓰는 기술
한 제품을 완성할 때는 한 가지 도구가 아니라 역할이 다른 여러 기술을 조합합니다.
기본
status·diff·add·commit·log
협업
fetch·pull·push·merge request
복구
restore·revert·reflog·cherry-pick
품질
hooks·signed commits·CODEOWNERS
실무에서는 이렇게 진행합니다
- 01
변경 확인
작업 전후 status와 diff로 범위를 확인합니다.
- 02
작은 커밋
서로 다른 이유의 변경을 나누고 메시지에 의도를 적습니다.
- 03
원격 동기화
최신 기준을 확인하고 충돌을 직접 이해해 해결합니다.
- 04
리뷰와 병합
자동 검사와 사람의 리뷰 뒤 공유 브랜치에 반영합니다.
선택하고 구현할 때 확인할 것
- 01커밋 하나가 한 가지 이유를 설명하는가
- 02비밀키와 생성 파일이 추적되지 않는가
- 03공유 이력을 강제로 바꾸기 전에 합의했는가
- 04충돌 해결 뒤 양쪽 변경을 모두 검증했는가
- 05삭제보다 revert 같은 추적 가능한 복구를 우선하는가
자주 묻는 질문
Git과 GitHub는 같은 것인가요?
Git은 버전 관리 도구이고 GitHub는 Git 저장소 호스팅, 리뷰, 이슈와 자동화 기능을 제공하는 서비스입니다.
merge와 rebase 중 무엇을 써야 하나요?
팀의 이력 규칙에 따라 다릅니다. 공유된 커밋을 rebase로 다시 쓰는 것은 주의하고, 목적과 영향 범위를 이해한 뒤 선택해야 합니다.