Git은 소스 제어 도구 중에서 가장 널리 사용되는 대표적인 도구다. 개발자라면 누구나 한 번쯤 들어봤을 이름일 것이다. Git은 코드의 변경 사항을 추적하고, 여러 사람이 협업하면서 생기는 문제를 해결할 수 있는 강력한 도구다.
이번 포스팅에서는 Git을 처음 접하는 분들을 위해 아주 기초적인 사용법과 개념을 쉽게 설명하려고 한다. 나도 Git을 처음 접했을 때는 단순히 “코드 공유 서비스” 정도로만 알았고, 명령어를 쓰는 것도 꽤 어려웠던 기억이 난다.
하지만 Git은 단순한 코드 공유 툴이 아니라, 강력한 버전 관리 도구다. 제대로 이해하고 쓰면 협업 과정에서 발생하는 수많은 문제를 깔끔하게 해결할 수 있다. 이번 포스팅에서는 초보자가 꼭 알아야 할 Git의 기본 개념과 명령어에 대해 다룬다.
Git은 어떻게 만들어졌을까? 🤔
Git은 리눅스 커널(Linux Kernel)을 만든 천재 개발자 리누스 토르발즈가 2005년에 개발했다. 당시 그는 BitKeeper라는 버전 관리 시스템을 사용했는데, 이 시스템이 갑자기 무료에서 유료로 바뀌자 이렇게 말했다.
"돈 내기 싫으니 내가 만들지 뭐."
그리고 2주 만에 Git을 만들었다. 네, 2주. 이게 가능하냐고? 리누스 형님이라 가능하다.
Git이 왜 필요한지, 현실적인 예로 알아보자 🎯
1. 작업 파일 복구: "타임머신 효과"
- 당신이 열심히 프로젝트 코드를 작성하다가 실수로 중요한 파일을 삭제했다고 하자.
- Git은 모든 작업 이력을 기록하기 때문에, 몇 초 만에 삭제 이전 상태로 돌아갈 수 있다.
- 마치 작업의 타임머신처럼 과거로 자유롭게 이동 가능하다.
2. 협업 충돌 방지: "팀 프로젝트에서"
- 팀원 A는 로그인 기능을, 팀원 B는 결제 기능을 개발 중.
- 두 사람이 작업한 파일을 합치려고 보니, 서로 코드를 덮어써버렸다? 😱
- Git의 브랜치 기능을 사용하면 각자 독립된 작업 공간에서 코딩 후, 나중에 병합(Merge)할 수 있다. 충돌 걱정 끝!
3. 실시간 협업과 리뷰: "누가 뭘 했는지 한눈에"
- Git은 누가 언제, 어떤 파일을 변경했는지 기록한다.
- 팀원들의 변경 사항을 실시간으로 확인하고, 코드 리뷰(Pull Request)를 통해 품질을 높일 수 있다.
Git의 기본 용어와 개념 👩💻
1. Repository (저장소)
Git 프로젝트를 저장하고 관리하는 파일 공간이다. 로컬 컴퓨터와 원격 서버에서 각각 관리할 수 있다.
- 로컬 저장소: 내 컴퓨터에 있는 Git 저장소.
- 원격 저장소: GitHub, GitLab 같은 서버 기반 저장소.
2. Commit
작업 변경 사항을 기록하는 스냅샷이다.
- "지금까지 작업한 파일 상태를 딱 저장해둬!"라는 의미.
- Commit을 통해 언제든 이전 상태로 돌아갈 수 있다.
3. Branch
Branch는 독립적인 작업 공간이다.
- 메인 브랜치(master/main) 외에도 각 기능별로 새로운 브랜치를 생성해 작업 가능.
- 작업 완료 후, 병합(Merge)하여 한 프로젝트로 통합.
Git 기본 명령어 따라하기 🛠️
1. Git 초기화
git init
프로젝트를 Git 저장소로 설정.
2. 파일 스테이징
git add 파일명
git add . # 모든 변경 사항 추가
변경된 파일을 "스테이지(Stage)"로 올린다. 포장 준비!
3. 커밋(Commit)
git commit -m "메시지"
변경 사항을 기록. "저장 완료!"
4. 원격 저장소 연결 및 업로드(Push)
git remote add origin <원격 저장소 URL>
git push -u origin main
변경 사항을 원격 서버에 업로드한다.
Git의 기본 워크플로우 🔄
Git의 작업 흐름은 아래처럼 간단하다.
마무리하며 🎉
Git은 처음엔 복잡해 보일 수 있지만, 실제로는 매우 직관적이고 강력한 도구다.
Git을 잘 활용하면 협업과 버전 관리가 쉬워지고, 코드 품질도 높아진다.
다음 포스팅에서는 브랜치 활용법과 협업에서 유용한 팁을 소개할 예정이다.
이 글이 도움이 되었다면, Git 명령어를 따라 해보며 직접 연습해 보길 바란다!
'Development > Git' 카테고리의 다른 글
Git Reflog와 문제 해결: 실수 복구하기 (0) | 2024.11.20 |
---|---|
Git Stash와 Reset/Checkout의 차이점: 혼란 끝내기 (0) | 2024.11.19 |
Git Rebase와 Cherry-Pick: 버전 관리 테크닉 (1) | 2024.11.18 |
Git 브랜치 가이드: 만드는 법, 병합, 풀(Pull)까지 (15) | 2024.11.17 |