본문 바로가기

Development/Git

Git이란 무엇인가? 초짜를 위한 설명 - 개요

git logo

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)하여 한 프로젝트로 통합.

image-20241117145833851


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의 작업 흐름은 아래처럼 간단하다.

image-20241117145806822


마무리하며 🎉

Git은 처음엔 복잡해 보일 수 있지만, 실제로는 매우 직관적이고 강력한 도구다.
Git을 잘 활용하면 협업과 버전 관리가 쉬워지고, 코드 품질도 높아진다.

다음 포스팅에서는 브랜치 활용법과 협업에서 유용한 팁을 소개할 예정이다.
이 글이 도움이 되었다면, Git 명령어를 따라 해보며 직접 연습해 보길 바란다!