웹 개발 기초

Git & Git Bash 정리 ✍️

chungmani 2026. 5. 29. 20:36

개발 공부 4일차..

개발자에게 필수라고 하는 Git에 대해 오늘 공부했지만..

처음 배우는거다 보니 개념이나 용어가 너무 어려웠다..

일단 내가 이해한대로 한번 적어보겠음요..

Git이란?

Git은 프로젝트의 저장 이력 관리 시스템이라고 할 수 있다.

쉽게 말하면 게임 세이브 기능 같은 느낌
프로젝트를 작업하다가 원하는 시점에 저장하고, 다시 돌아갈 수도 있고, 작업 흐름도 관리할 수 있음.

Git은 보통 이런 흐름으로 동작한다고 함.

[작업 중인 파일]
      ↓
[저장할 파일 고르기]
      ↓
[사진 찍듯 저장(commit)]

Git의 주요 개념

Working Tree / Working Directory

  • 내가 실제로 작업하고 있는 공간
  • 현재 수정 중인 파일들이 있는 곳

💡 쉽게 말하면
책상 위 작업 공간이라고 이해하면 됨.

Stage Area

  • 저장(commit)할 파일들을 미리 담아두는 공간
  • commit 하기 전에 “이 파일 저장할래!” 하고 선택하는 곳

💡 쉽게 말하면
사진 찍기 전에 촬영할 대상을 정해두는 느낌.

Local Repository (Local Directory)

  • commit들이 저장되는 Git 저장소
  • 내가 저장한 작업 기록들이 보관되는 공간

💡 게임으로 치면 세이브 슬롯 느낌


Git 핵심 용어

commit

  • 프로젝트 상태를 저장한 기록
  • 특정 시점의 작업 내용을 저장하는 것

💡 게임 저장 포인트라고 생각하면 이해하기 쉬움.

snapshot

Git은 파일 하나만 저장하는게 아니라
그 순간 프로젝트 전체 모습을 사진처럼 저장한다고 함.

그래서 snapshot은

💡 commit 당시 프로젝트 전체 상태 라고 이해하면 됨

HEAD

  • 현재 내가 보고 있는 commit 위치를 말함
  • 보통 최신 commit를 가리키고 있음

💡 책갈피 같은 개념이라고 생각하면 편함.

branch

  • 작업을 나누는 기능
  • 기존 작업은 안전하게 두고 새로운 작업 공간을 만드는 느낌

💡 메인 세계는 안전하게 두고
새로운 평행세계를 하나 만드는 거라고 생각하면 됨 🌎

 

예를 들어:

  • main 브랜치 → 실제 사용중인 코드
  • feature-login 브랜치 → 로그인 기능 개발중

이런 식으로 사용함.

merge

  • branch를 합치는 기능
  • 새로운 세계에서 만든 작업을 기존 세계에 합치는 것

💡 새로운 기능 개발 끝나면
main 브랜치와 합쳐주는 작업이라고 보면 됨.


Git Bash란?

"윈도우에서 Git 명령어를 입력할 수 있게 해주는 터미널"

 

윈도우 기본 cmd는 리눅스 명령어와 조금 다름.

그래서 "윈도우에서도 리눅스 느낌으로 Git을 사용하게 해주자!"

라는 느낌으로 만들어진 도구라고 한다.

 

오늘 설치완료..ㅎㅎ


왜 리눅스를 사용할까?

1. 무료임

리눅스는 오픈소스 기반이라 무료로 사용할 수 있음.

이게 제일 큰 이유? 인듯.

2. 개발 환경이 리눅스 기반인 경우가 많음

많은 서버와 개발 환경이 리눅스 기반으로 동작함.

그래서 개발자들은:

  • 리눅스 명령어
  • 터미널 환경
  • Bash

같은 것들을 자주 사용하게 됨.

특히 백엔드 개발에서는 리눅스 환경을 자주 접하게 된다고 함