본문 바로가기
AI 오케스트레이션 프리코스

SK네트웍스 Family 엔코아 AI 오케스트레이션 프리코스 6|Git 기초·초기 설정·브랜치·파일 상태

by 랩보다 AI 더 잘해지기 2026. 8. 18.
728x90

 

이번 프리코스에서는 개발 협업에서 빠질 수 없는 Git의 기본 개념과 사용 방법을 배웠다.

Git이 왜 필요한지부터 시작해서 설치와 초기 설정, git init을 이용한 저장소 초기화, 기본 브랜치 설정, 그리고 Git에서 가장 중요한 Working Tree → Staging Area → Git Repository의 흐름까지 살펴봤다.

처음에는 명령어가 많아 보였지만, 하나씩 따라가 보니 결국 Git은 파일의 변경 사항을 기록하고 원하는 시점의 버전을 남기는 도구라는 큰 흐름으로 연결되어 있었다.

Git과 버전 관리 시스템

Git은 버전 관리 시스템(VCS, Version Control System) 중 하나다.

버전 관리 시스템은 파일이 시간에 따라 어떻게 변경되었는지를 기록하고 추적한다.

예를 들어 문서 작업을 하다 보면 이런 식으로 파일을 저장한 경험이 있다.

보고서.hwp
보고서_수정.hwp
보고서_수정2.hwp
보고서_최종.hwp
보고서_진짜최종.hwp

파일 이름으로 직접 버전을 구분하는 방식이다.

Git을 사용하면 이런 방식으로 파일을 계속 복사할 필요 없이 특정 시점의 변경 내용을 하나의 버전으로 기록할 수 있다.

필요하면 이전 버전으로 돌아가거나 서로 다른 작업 내용을 합칠 수도 있고, 여러 사람이 같은 프로젝트를 나누어 작업할 수도 있다.

즉 Git의 중요한 목적은 크게 버전 관리와 협업이라고 이해했다.

Git과 GitHub도 처음에는 비슷한 것으로 생각하기 쉽지만 역할이 다르다.

Git은 내 컴퓨터에서 파일의 변경 사항과 버전을 관리하는 도구이고, GitHub는 Git으로 관리하는 프로젝트를 온라인에서 저장하고 공유할 수 있도록 도와주는 서비스다.

Git 설치와 Git Bash

Git을 사용하기 위해 먼저 자신의 운영체제에 맞는 Git을 설치했다.

Windows에서는 Git을 설치하면 여러 프로그램이 함께 제공되는데, 이번 학습에서는 주로 Git Bash를 사용했다.

Git Bash에서는 마우스로 파일을 조작하는 대신 텍스트 명령어를 입력해 현재 위치를 확인하거나 폴더를 이동할 수 있다.

pwd

현재 내가 위치한 경로를 확인한다.

ls

현재 디렉토리에 존재하는 파일과 폴더 목록을 확인한다.

cd 폴더명

원하는 디렉토리로 이동한다.

mkdir 폴더명

새로운 디렉토리를 생성한다.

처음에는 터미널에서 경로를 직접 이동하는 것이 낯설 수 있지만, Windows 탐색기에서 원하는 폴더를 우클릭한 뒤 Git Bash Here를 선택하면 해당 위치에서 바로 Git Bash를 실행할 수도 있었다.

Git 사용자 정보 설정

Git을 처음 사용할 때는 누가 변경 기록을 남겼는지 구분하기 위해 사용자 이름과 이메일을 설정한다.

git config --global user.name "이름"
git config --global user.email "이메일"

여기서 --global은 현재 컴퓨터 전체에서 기본적으로 사용할 설정이라는 의미다.

설정한 내용을 확인하려면 다음 명령어를 사용할 수 있다.

git config --list

이 명령어를 실행하면 user.name, user.email뿐 아니라 현재 적용되어 있는 여러 Git 설정값을 확인할 수 있다.

git init으로 Git 저장소 시작하기

일반 폴더를 Git이 관리하는 프로젝트로 만들기 위해 사용하는 명령어가 git init이다.

git init

명령어를 실행하면 해당 디렉토리에 숨김 폴더인 .git이 생성된다.

ls -al

ls -al을 사용하면 숨김 파일까지 확인할 수 있기 때문에 .git 폴더가 생성된 것을 볼 수 있다.

이 .git 디렉토리 안에는 앞으로 Git이 프로젝트의 버전을 관리하기 위해 필요한 정보들이 저장된다. 따라서 Git을 사용하는 과정에서 .git 폴더를 아무 생각 없이 삭제하면 안 된다.

강의에서는 초기 설정을 잘못했을 때 .git을 삭제하고 다시 git init을 실행하는 과정도 살펴봤지만, 이미 중요한 작업 기록이 있는 프로젝트에서는 주의해야 한다.

기본 브랜치를 master에서 main으로 변경하기

Git을 설치할 때 기본 브랜치 이름이 master로 설정되어 있다면 이후 생성하는 저장소의 기본 브랜치를 main으로 변경할 수 있다.

먼저 현재 설정을 확인한다.

git config --list

그리고 기본 브랜치 이름을 다음과 같이 설정한다.

git config --global init.defaultBranch main

다시 설정값을 확인했을 때

init.defaultbranch=main

으로 표시된다면 정상적으로 변경된 것이다.

중요한 점은 이 설정이 앞으로 git init으로 새롭게 만드는 저장소에 적용되는 기본 브랜치 이름을 변경한다는 것이다.

이미 만들어진 저장소의 현재 브랜치 이름을 바꾸는 것과는 조금 다르다.

기존 브랜치의 이름을 변경하고 싶다면 다음과 같이 사용할 수 있다.

git branch -m main

강의에서도 이미 만들어진 브랜치를 삭제하고 다시 저장소를 만드는 대신 git branch -m을 이용해 현재 브랜치의 이름을 변경할 수 있다는 내용을 살펴봤다.

Git에서 가장 중요한 세 가지 상태

이번 학습에서 가장 중요하게 느껴진 부분은 Git에서 파일이 이동하는 세 가지 상태와 영역이었다.

Git 프로젝트는 크게 다음 흐름으로 생각할 수 있다.

Working Tree
    ↓
git add
    ↓
Staging Area
    ↓
git commit
    ↓
Git Repository

Working Tree

실제로 파일을 만들고 수정하는 작업 공간이다.

예를 들어 Python 파일을 만들거나 기존 코드를 수정했다면 그 변경 사항은 우선 Working Tree에 존재한다.

Staging Area

이번 버전에 포함할 변경 사항을 골라 놓는 중간 공간이다.

git add 파일명

을 사용하면 원하는 변경 사항을 Staging Area에 올릴 수 있다.

왜 바로 커밋하지 않고 이런 중간 단계가 필요한지 처음에는 조금 헷갈렸다.

예를 들어 두 개의 파일을 동시에 수정했다고 하더라도 이번 버전에는 첫 번째 파일의 변경 사항만 넣고 싶을 수 있다.

이때 필요한 파일만 먼저 Staging Area에 올려놓으면 원하는 변경 사항만 골라서 하나의 버전으로 만들 수 있다.

Git Repository

Staging Area에 준비된 변경 사항을 실제 버전으로 기록하는 공간이다.

이때 사용하는 것이 commit이다.

git commit

커밋은 쉽게 생각하면 현재 파일 상태의 스냅샷을 찍어 저장하는 것과 비슷하다.

사진을 찍으면 특정 순간의 모습이 남는 것처럼, Git도 커밋을 통해 특정 시점의 파일 상태를 기록한다.

결국 다음 흐름을 이해하는 것이 중요했다.

파일 수정
↓
Modified

git add
↓
Staged

git commit
↓
Committed

처음에는 add가 단순히 파일을 추가한다는 의미라고 생각하기 쉬웠는데, Git에서는 다음 커밋에 포함할 변경 사항을 준비하는 과정이라는 점을 기억해야겠다.

Git 명령어 사용법이 기억나지 않을 때

Git 명령어를 모두 외울 필요는 없다.

명령어가 기억나지 않을 때 Git에서 제공하는 도움말을 확인할 수 있다.

예를 들어 config 명령어의 자세한 설명을 보고 싶다면 다음과 같이 사용할 수 있다.

git help config

또는

git config --help

처럼 작성할 수도 있다.

Unix 계열에서는 다음과 같은 방식도 사용할 수 있다.

man git-config

자세한 매뉴얼까지 볼 필요 없이 사용 가능한 옵션만 빠르게 확인하고 싶다면 -h를 사용할 수 있다.

git config -h

--help가 자세한 설명서라면 -h는 터미널에서 빠르게 확인하는 요약 도움말이라고 이해하면 쉬웠다.

앞으로 Git 명령어가 기억나지 않을 때 무조건 검색부터 하기보다 -h와 --help를 활용하는 습관을 들여야겠다.

이번 학습의 핵심 명령어 정리

# 현재 경로 확인
pwd

# 파일 및 폴더 목록 확인
ls

# 숨김 파일까지 자세하게 확인
ls -al

# 디렉토리 이동
cd 폴더명

# 디렉토리 생성
mkdir 폴더명

# Git 사용자 이름 설정
git config --global user.name "이름"

# Git 사용자 이메일 설정
git config --global user.email "이메일"

# Git 설정 확인
git config --list

# 새 저장소의 기본 브랜치를 main으로 설정
git config --global init.defaultBranch main

# 현재 브랜치 이름 변경
git branch -m main

# Git 저장소 초기화
git init

# 자세한 도움말 확인
git help config
git config --help

# 간단한 도움말 확인
git config -h

이번 학습을 마치며

이번 프리코스에서는 단순히 Git 명령어를 외우기보다 Git이 왜 이런 구조로 동작하는지를 이해하는 데 집중했다.

특히 가장 중요했던 것은 다음 흐름이었다.

Working Tree
→ Staging Area
→ Git Repository

처음에는 git add를 왜 거쳐야 하는지 이해가 잘되지 않았지만, 모든 변경 사항을 무조건 하나의 버전으로 만드는 것이 아니라 이번 버전에 포함할 변경 사항을 직접 선택하기 위한 중간 공간이 Staging Area라고 생각하니 조금 이해가 쉬워졌다.

그리고 커밋을 단순히 '저장'이라고 생각하기보다는 특정 시점의 프로젝트 상태를 스냅샷으로 기록한다고 이해하는 것이 Git의 버전 관리 개념을 이해하는 데 도움이 됐다.

아직 브랜치나 커밋을 실제 프로젝트에서 본격적으로 사용해보지는 않았기 때문에 명령어 자체는 낯설다. 그래도 git init을 통해 Git이 관리할 영역을 만들고, 파일을 수정한 뒤 add를 거쳐 commit으로 버전을 남긴다는 전체 흐름은 잡힌 것 같다.

앞으로는 직접 파일을 만들고 수정하면서 git status, git add, git commit 등의 명령어를 사용해 파일의 상태가 실제로 어떻게 바뀌는지 확인해봐야겠다.

댓글