버전 관리
파일의 변경 이력을 기록하고 원하는 시점으로 되돌릴 수 있게 관리하는 방식이다.
파일을 복사해 이름 뒤에 v1, v2를 붙이던 일을 도구가 대신 해 준다. VCS, 형상 관리(SCM)도 같은 뜻으로 쓴다.
나오는 곳:STEP 01 버전 관리의 세 영역태그:VCS · SCM
화면 설정
강의·부록·명령어 참조에 나오는 기술 용어를 모았다. 한 줄 정의와 쉬운 풀이를 읽고, 그 용어가 나오는 STEP·명령어·태그로 이동한다.
파일의 변경 이력을 기록하고 원하는 시점으로 되돌릴 수 있게 관리하는 방식이다.
파일을 복사해 이름 뒤에 v1, v2를 붙이던 일을 도구가 대신 해 준다. VCS, 형상 관리(SCM)도 같은 뜻으로 쓴다.
나오는 곳:STEP 01 버전 관리의 세 영역태그:VCS · SCM
Git이 이력을 관리하는 폴더이며, 숨김 폴더 .git에 모든 기록이 들어 있다.
리포지토리라고도 부른다. 내 컴퓨터에 있으면 로컬 저장소, GitHub에 있으면 원격 저장소다.
나오는 곳:STEP 02 저장소 준비와 파일 추적 · STEP 05 원격 저장소와 동기화명령어:git init · git clone태그:init · 로컬 저장소
파일을 실제로 열어 고치고 저장하는 폴더다.
마트의 진열대처럼 물건을 집어 드는 곳이다. 여기서 고친 내용은 아직 Git에 기록되지 않는다.
나오는 곳:STEP 01 버전 관리의 세 영역 · STEP 02 저장소 준비와 파일 추적명령어:git status · git diff태그:작업 공간
다음 커밋에 넣을 파일을 골라 올려 두는 대기 장소다.
장바구니다. git add로 담고, 잘못 담았으면 git restore --staged로 뺀다.
나오는 곳:STEP 01 버전 관리의 세 영역 · STEP 02 저장소 준비와 파일 추적 · STEP 03 커밋과 이력 기록명령어:git add · git restore태그:스테이징 영역 · add · restore --staged
내 컴퓨터의 .git 안에 커밋이 쌓이는 곳이다.
계산을 마친 영수증을 모아 두는 앨범이다. 커밋하면 여기에 스냅샷이 남는다.
나오는 곳:STEP 01 버전 관리의 세 영역 · STEP 03 커밋과 이력 기록명령어:git commit · git log태그:로컬 저장소 · commit
GitHub 같은 서버에 있는 저장소로, 백업과 협업의 기준점이다.
로컬에서 push로 올리고 pull로 받는다. 수업에서는 origin이라는 이름으로 등록한다.
나오는 곳:STEP 05 원격 저장소와 동기화명령어:git remote · git push · git pull태그:remote · push · pull
원격 저장소 주소에 붙이는 기본 이름이다.
주소를 매번 적지 않으려고 붙인 별명이다. git remote -v로 어느 주소인지 확인한다.
나오는 곳:STEP 05 원격 저장소와 동기화명령어:git remote태그:remote
스테이징한 파일 상태를 메시지와 함께 저장한 기록 한 건이다.
작업을 저장하는 체크포인트다. 커밋마다 고유한 해시와 메시지가 붙는다.
나오는 곳:STEP 03 커밋과 이력 기록명령어:git commit · git log태그:commit · log
커밋 시점의 파일 전체 상태를 찍어 둔 것이다.
변경된 줄만 저장하는 것처럼 보이지만, Git은 그 순간의 파일 전체 모습을 기억한다.
나오는 곳:STEP 01 버전 관리의 세 영역 · STEP 03 커밋과 이력 기록명령어:git commit태그:commit
커밋 내용을 계산해 만든 40자리 고유 식별자다.
커밋의 주민번호다. 보통 앞 7자리(예: a1b2c3d)만으로 구분한다.
나오는 곳:STEP 03 커밋과 이력 기록명령어:git log · git revert태그:log
작업 중인 브랜치, 또는 이동해 둔 커밋을 가리키는 참조다. 보통 그 브랜치의 최신 커밋을 따라간다.
지금 내가 서 있는 위치다. HEAD~1은 바로 전 커밋을 뜻한다.
나오는 곳:STEP 04 되돌리기와 무시 규칙명령어:git revert · git reset태그:revert · reset
git status가 보여 주는 Untracked·modified·staged 구분이다.
빨간색 Untracked는 Git이 모르는 새 파일, 빨간색 modified는 고쳤지만 담지 않은 파일, 초록색 staged는 커밋 대기 파일이다.
나오는 곳:STEP 02 저장소 준비와 파일 추적명령어:git status · git add태그:status · add
Git이 추적하지 않을 파일·폴더 패턴을 적는 파일이다.
비밀 설정(.env)이나 운영체제 임시 파일을 커밋에서 빼는 목록이다. 이미 추적 중인 파일은 git rm --cached로 먼저 추적을 끊어야 한다.
나오는 곳:STEP 04 되돌리기와 무시 규칙 · .gitignore 패턴명령어:git rm태그:.gitignore
직전 커밋을 새 내용이나 메시지로 바꿔 치우는 commit 옵션이다.
방금 한 커밋의 오타를 고칠 때 쓴다. 이미 push한 커밋에는 쓰지 않는다.
나오는 곳:STEP 04 되돌리기와 무시 규칙명령어:git commit태그:amend
특정 커밋의 변경을 반대로 적용하는 새 커밋을 만드는 일이다.
이력을 지우지 않고 되돌리므로 이미 공유한 커밋에도 안전하다. reset은 포인터를 뒤로 옮기는 다른 방법이다.
나오는 곳:STEP 04 되돌리기와 무시 규칙명령어:git revert · git reset태그:revert · reset
커밋 이력에서 갈라져 나온 독립된 작업 줄기다.
main을 건드리지 않고 새 기능을 따로 작업하는 길이다. git switch -c로 만들고 이동한다.
나오는 곳:STEP 10 브랜치와 태그명령어:git branch · git switch태그:branch · switch
이 수업과 GitHub가 기본으로 쓰는 브랜치 이름이다. 로컬 git init의 기본 이름은 설정에 따라 다르다.
완성된 코드가 모이는 줄기다. 작업 브랜치를 여기에 병합한다.
나오는 곳:STEP 05 원격 저장소와 동기화 · STEP 10 브랜치와 태그명령어:git branch · git merge태그:branch · merge
특정 커밋에 붙이는 v0.1.0 같은 버전 이름표다.
제출이나 공개 시점을 표시해 나중에 찾기 쉽게 한다.
나오는 곳:STEP 10 브랜치와 태그명령어:git tag태그:tag
다른 브랜치의 커밋을 현재 브랜치에 합치는 일이다.
작업 브랜치의 결과를 main으로 가져온다. 양쪽이 같은 곳을 고쳤으면 충돌이 난다.
나오는 곳:STEP 11 병합과 충돌 해결명령어:git merge태그:merge
두 브랜치가 같은 파일의 같은 부분을 다르게 고쳐 Git이 자동으로 합치지 못하는 상태다.
파일에 <<<<<<<, =======, >>>>>>> 표시가 생긴다. 남길 내용을 고르고 표시를 지운 뒤 커밋한다. 막히면 git merge --abort.
나오는 곳:STEP 11 병합과 충돌 해결명령어:git merge · git diff태그:충돌 해결
갈라진 커밋이 없을 때 브랜치 포인터만 앞으로 옮겨 끝나는 병합이다.
fast-forward라고도 한다. 병합 커밋이 생기지 않는다.
나오는 곳:STEP 11 병합과 충돌 해결명령어:git merge태그:merge
로컬 브랜치가 push·pull할 때 기본으로 연결되는 원격 브랜치다.
git push -u origin main을 한 번 하면 다음부터 git push만으로 같은 곳에 올라간다.
나오는 곳:STEP 05 원격 저장소와 동기화명령어:git push · git pull태그:push · pull
브랜치의 변경을 검토하고 병합해 달라고 GitHub에서 요청하는 절차다.
Pull Request, 줄여서 PR이다. 리뷰 기록이 남고 Closes #번호로 이슈를 함께 닫을 수 있다.
나오는 곳:STEP 12 풀 리퀘스트와 협업명령어:git push · git pull태그:Pull Request
남의 GitHub 저장소를 내 계정으로 통째로 복사하는 일이다.
쓰기 권한이 없는 저장소에 기여할 때 포크한 뒤 풀 리퀘스트를 보낸다.
나오는 곳:STEP 12 풀 리퀘스트와 협업명령어:git clone태그:Pull Request
GitHub에서 할 일, 버그, 제안을 번호가 붙은 글로 관리하는 기능이다.
Label은 분류 꼬리표, Milestone은 이슈를 묶는 목표 단위다.
나오는 곳:STEP 09 이슈로 작업 관리태그:Issue · Label · Milestone
저장소 첫 화면에 보이는 소개 문서다.
프로젝트가 무엇이고 어떻게 실행하는지 적는다. Markdown으로 쓴다.
나오는 곳:STEP 08 프로필과 작업 기록태그:README
#, -, ** 같은 기호로 제목·목록·강조를 적는 가벼운 문서 형식이다.
README, Issue, Pull Request 본문이 모두 이 형식이다. Mermaid는 그 안에서 다이어그램을 글로 그리는 문법이다.
나오는 곳:STEP 07 마크다운과 다이어그램태그:Markdown · Mermaid
저장소의 정적 파일을 웹사이트로 공개하는 GitHub 서비스다.
push하면 잠시 뒤 인터넷 주소에서 내 페이지가 열린다.
나오는 곳:STEP 06 웹사이트 배포명령어:git push태그:GitHub Pages
서버가 요청마다 페이지를 새로 만들지 않고 준비된 파일을 제공하는 웹사이트다.
HTML·CSS·이미지처럼 미리 준비한 파일로 페이지를 구성한다.
나오는 곳:STEP 06 웹사이트 배포태그:정적 웹 · GitHub Pages
웹사이트 파일을 서버에 두고 인터넷 요청에 따라 제공하는 서비스다.
정적 웹 호스팅은 준비된 HTML·CSS·이미지 파일을 제공한다.
나오는 곳:STEP 06 웹사이트 배포태그:호스팅 · 배포
글자 명령을 입력해 프로그램을 조작하는 방식이다.
마우스로 누르는 GUI와 반대다. Git은 CLI로 쓴다.
명령을 입력하고 결과를 보여 주는 창이다.
VS Code 안의 터미널, macOS 터미널, Windows의 Git Bash 창이 모두 터미널이다.
나오는 곳:STEP 01 버전 관리의 세 영역 · CLI·터미널·셸태그:터미널
입력한 명령을 해석해 프로그램을 찾아 실행하는 프로그램이다.
Bash, zsh가 셸이다. 터미널은 창이고 셸은 그 안에서 일하는 통역사다.
파일·메모리·장치를 관리하는 운영체제의 핵심이다.
Git이 파일을 읽고 쓸 때 셸이 아니라 커널에 요청한다.
셸이 명령 이름으로 실행 파일을 찾아보는 폴더 목록이다.
git을 쳤는데 못 찾는다고 하면 설치나 PATH 등록 문제다.
운영체제나 셸이 프로그램에 넘겨 주는 이름=값 설정이다.
API 키 같은 비밀은 코드에 적지 않고 환경 변수나 .env 파일에 둔다.
나오는 곳:환경 변수와 비밀 정보태그:환경 변수 · .env
비밀번호 대신 쓰는 긴 문자열 인증 수단이다.
GitHub의 Personal Access Token이 대표다. 채팅·커밋·Issue에 붙여 넣지 않는다.
나오는 곳:STEP 05 원격 저장소와 동기화 · 자격 증명 재인증태그:토큰 · 자격 증명
운영체제가 저장해 둔 GitHub 로그인 정보다.
계정이 바뀌었는데 push가 거부되면 저장된 자격 증명을 지우고 다시 로그인한다.
터미널 안에서 열리는 글자 기반 편집기다.
git commit에 -m을 빼먹으면 열린다. Esc 뒤 :q!로 취소하거나 :wq로 저장하고 나온다.
나오는 곳:STEP 03 커밋과 이력 기록 · vi 편집기명령어:git commit태그:vi · 편집기
요청을 읽고 계획을 세워 파일 수정이나 명령 실행을 대신하는 AI 도구다.
수업에서는 OpenCode를 쓴다. 계획을 읽고 승인한 범위만 실행하게 하고 결과는 git status·log로 직접 확인한다.
나오는 곳:STEP 01 버전 관리의 세 영역 · Git 실습 시나리오태그:OpenCode · 에이전트 승인
에이전트에게 보내는 요청 문장이다.
무엇을, 어느 파일에, 어디까지 할지 적을수록 결과가 정확해진다.
나오는 곳:STEP 02 저장소 준비와 파일 추적 · Git 실습 시나리오태그:OpenCode
Today I Learned, 그날 배운 것을 짧게 남기는 기록이다.
회고는 경험을 돌아보고 다음 행동을 정하고, 부검(Post-mortem)은 문제 원인과 재발 방지를 다룬다. 이들은 기록의 종류이며 KPT·STAR·4F 같은 작성 틀은 종류와 별개로 상황에 맞게 고른다.
나오는 곳:STEP 08 프로필과 작업 기록태그:TIL · Post-mortem