Git 기본 개념

읽는 시간: 약 15분 · 버전: v0.5 (2026-09-21) · GitHub 가이드 4편
3편 기본 실습을 한 번 해 본 뒤에 읽으세요. 손으로 해 본 것에 이름을 붙이는 문서입니다.

실습에서 여러분은 이미 Git을 썼습니다. 이 문서는 그때 화면 뒤에서 무슨 일이 일어났는지 설명합니다. 외울 것은 없습니다.

1. 네 가지 구성 요소

나, AI 에이전트, 프로젝트 폴더와 Git 작업 일지, GitHub Desktop, GitHub의 관계
이름정체쉽게 말하면내가 직접 만지나요
Git(깃)내 PC의 프로젝트 폴더 안에서 변경 이력을 적는 기록 엔진. 폴더 안의 숨은 .git 폴더에 기록이 쌓입니다작업 일지아니요. 뒤에서 돌아갑니다
GitHub(깃허브)그 작업 일지와 파일의 사본을 보관하는 온라인 서비스회사 공용 폴더웹에서 보고, PR을 씁니다
GitHub DesktopGit을 버튼으로 움직이는 리모컨리모컨네. 매일 씁니다
AI 에이전트(Codex)말로 지시하면 폴더의 파일을 고치는 조수문서를 고쳐 주는 조수네. 말로 지시합니다
  • Git과 GitHub는 다릅니다. Git은 내 PC 안에 있고 인터넷 없이도 돌아갑니다. GitHub는 그 기록을 올려 두는 곳입니다.
  • Git은 누가 파일을 고쳤는지 가리지 않습니다. AI가 고치든 내가 고치든, Git이 관리하는 파일의 변경은 GitHub Desktop의 Changes에 나타납니다. 그래서 어떤 AI 도구를 쓰든 기록하는 방법은 같습니다.

2. 저장, 커밋, 푸시의 차이

"저장했는데 왜 GitHub에 없어요?"가 가장 흔한 질문입니다. 장소가 세 군데이기 때문입니다.

작업 폴더, 내 PC의 Git 이력, GitHub 세 장소와 그 사이의 커밋, 푸시, 풀
동작무슨 일이 일어나나누가 볼 수 있나
저장 (AI가 파일을 고침)① 작업 폴더의 파일이 바뀝니다. Git의 이력에는 아직 아무것도 남지 않습니다나
커밋② 내 PC의 이력에 "이 시점"이 기록됩니다나
푸시③ GitHub에 이력이 복사됩니다권한이 있는 팀장과 동료
풀③ 에 새로 올라온 이력이 ① ② 로 내려옵니다

Git은 파일이 바뀌는 모든 순간을 알아서 기록하지 않습니다. 내가 커밋한 시점만 이력에 남습니다. 커밋과 커밋 사이에 AI가 열 번을 고쳤어도 이력에는 마지막 결과만 남습니다.

버튼에 나오는 origin(오리진)은 "이 폴더와 연결된 GitHub 쪽 저장소"를 부르는 별명입니다.

버튼읽는 법
Fetch originGitHub 쪽에 새 소식이 있는지 확인만 합니다. 내 파일은 바뀌지 않습니다
Pull origin지금 브랜치와 같은 이름의 GitHub 쪽 브랜치에 새로 올라온 것을 내려받습니다. 받을 것이 있을 때만 나타납니다
Push origin내 커밋을 GitHub 쪽 같은 이름의 브랜치로 올립니다

3. 커밋에 담기는 것

보고서 파일 이름에 붙이던 v1, v2, v3 에 해당하는 것이 Git에서는 커밋(commit)입니다. 영어로 revision(리비전, '고친 판'이라는 뜻)이라고도 부릅니다. 같은 말입니다.

담기는 것예시누가 적나
그 순간 Git이 관리하는 파일들의 상태프로젝트 파일 120개의 내용Git
직전 커밋과 달라진 부분report.tsx 12줄 추가, 3줄 삭제Git
작성자와 시각홍길동, 2026-10-13 10:20Git
고유 번호a1b2c3dGit
한 줄 메모보고서 양식에 요약 표 추가나

담기지 않는 것도 있습니다.

  • 제외하도록 설정된 파일. 비밀번호를 담는 .env, 업무 데이터가 들어가는 data 폴더, 문서 원본 같은 것은 기본 틀에서 Git이 무시하도록 설정해 둡니다. 이런 파일은 Changes에 나타나지 않고, 커밋에도 GitHub에도 올라가지 않습니다. 그래서 Git은 폴더 전체의 백업이 아닙니다.
  • 체크를 끈 변경. GitHub Desktop의 Changes에서 체크를 끈 파일은 그 커밋에 들어가지 않습니다.

고유 번호(a1b2c3d)는 외울 필요가 없습니다. 도움을 요청할 때 "이 커밋이요" 하고 가리키는 용도입니다.

커밋 시점

  • AI에게 시킨 일 하나가 끝났고, 세 가지 확인(예상 못 한 파일, 동작, 민감한 자료)을 마쳤을 때
  • 큰 변경을 시키기 직전 (문제가 생기면 취소하기 쉽습니다)
  • 하루 작업을 마칠 때 (그리고 푸시)

4. 되돌리기 두 가지: Discard와 Revert

커밋 다섯 개가 이어진 선에서 다섯 번째 Revert 커밋이 네 번째 커밋의 변경만 취소하는 그림
Discard ChangesRevert Changes in Commit
언제커밋하기 전커밋한 뒤
하는 일선택한 파일에서, 아직 커밋하지 않은 변경을 버립니다선택한 커밋 하나가 만든 변경을 취소하는 새 커밋을 만듭니다
이력남지 않습니다 (커밋한 적이 없으므로)실수한 커밋도, 취소한 커밋도 모두 남습니다
조심할 점그 파일의 필요한 수정도 함께 사라집니다. 대상 파일을 확인하고 누릅니다폴더 전체를 그 시점으로 되감는 것이 아닙니다. 그 커밋이 바꾼 부분만 원래대로 돌립니다
  • 되돌릴 커밋이 여러 개라면 최신 것부터 차례로 합니다.
  • 그 뒤에 다른 변경이 쌓여 있으면 충돌이 나거나 결과가 예상과 다를 수 있습니다. 그럴 때는 멈추고 도움을 요청합니다. 충돌이 무엇이고 어떻게 대처하는지는 7편에 있습니다.
  • "지난주 상태로 통째로 돌아가고 싶다"처럼 여러 커밋을 한꺼번에 되감아야 하는 일은 직접 하지 말고 팀장에게 요청합니다.

5. 브랜치, PR, 병합, 배포

브랜치(branch) 는 같은 저장소 안에서 따로 자라는 이력의 줄기입니다. 어느 한 시점에서 갈라져 나와 따로 자라고, 병합으로 다시 합쳐집니다. 그림과 자세한 설명은 7편에 있습니다.

브랜치역할어떻게 바뀌나
work (연습장에서는 work-…)작업본. 매일 커밋하고 푸시하는 곳내가 푸시할 때
main완성본. 사내 서버에 올라가는 버전의 바탕팀장이 PR을 병합할 때만. 직접 고치지 않습니다

work 와 main 은 Git의 명령어나 예약어가 아니라 브랜치에 붙인 이름표입니다. main 은 GitHub의 기본 이름이고, work 는 우리 TF가 정했습니다. 인터넷 글이나 AI의 설명에 develop, feature/..., master 가 나와도 같은 개념의 다른 이름표입니다.

PR에서 서버까지는 서로 다른 세 단계입니다.

단계누가결과
① 검토·승인팀장"반영해도 좋다"는 표시. 아직 main 은 바뀌지 않았습니다
② 병합(merge)팀장이때 work 의 커밋들이 main 에 반영됩니다
③ 배포팀장main 의 내용을 사내 서버에 올립니다. 병합과는 별도 단계입니다

GitHub의 기능과 우리 TF의 규칙

우리 TF의 규칙GitHub 자체는
브랜치는 work 와 main 두 개만 씁니다브랜치를 몇 개든 만들 수 있습니다
병합은 팀장만 합니다권한이 있으면 누구나 병합할 수 있습니다
main 은 직접 고치지 않습니다(팀장 포함). PR 병합으로만 바뀝니다권한이 있으면 main 에 직접 푸시할 수 있습니다
회사 PC의 C:\tf 에서만 작업합니다어디서든 접속할 수 있습니다
커밋 전 세 가지 확인은 반드시 사람이 합니다. 교육 기간에는 커밋·푸시도 GitHub Desktop으로 직접 합니다확인 절차 없이도 누구든, 어떤 도구로든 커밋할 수 있습니다

규칙 중 일부는 팀장이 GitHub 설정으로 걸어 둡니다(예: main 에 직접 푸시하지 못하게 하기). 다만 이런 보호는 GitHub 쪽 저장소에 거는 규칙이라서, 내 PC에서 main 을 열어 놓고 파일을 고치거나 커밋하는 것까지 막아 주지는 않습니다. 그래서 작업을 시작할 때 브랜치를 직접 확인합니다.

또 하나, 비공개 저장소는 "초대받아 권한이 있는 계정만 볼 수 있다"는 뜻입니다. "회사 네트워크 안에서만 열린다"는 뜻이 아닙니다.

6. 첫 PR 이후의 작업

같은 work 를 계속 씁니다. PR마다 브랜치를 새로 만들지 않습니다.

  • 병합은 GitHub 쪽 main 에서 일어나는 일입니다. 내 work 는 그대로이고, 병합 뒤에 내가 따로 맞춰야 할 것은 없습니다. 평소처럼 공통 순서(저장소 확인 → 브랜치 선택 → Fetch origin → Pull origin이 나타나면 Pull)로 시작하면 됩니다.
  • main 은 직접 고치지 않는 것이 우리 TF의 원칙입니다. main 은 PR 병합으로만 바뀌므로 main 에 있는 내용은 모두 work 에서 간 것이고, work 를 main 에 맞추는 작업이 필요 없습니다.
  • Pull origin은 GitHub 쪽 work 에 내 PC에 없는 커밋이 있을 때만 나타납니다(예: 팀장이 도와주려고 work 에 수정을 넣어 준 경우). 나타나지 않으면 받을 것이 없는 것입니다.
  • PR이 열려 있는 동안 work 에 푸시하면 그 변경도 그 PR에 들어갑니다. 수정 요청 반영은 괜찮지만, 관련 없는 새 작업은 병합된 뒤에 시작합니다.
  • 두 번째 PR에 이미 반영된 예전 커밋이 다시 보이면 멈추고 팀장에게 알립니다. 저장소의 병합 설정을 점검해야 하는 상황입니다.

7. 역할 분담

하는 일담당도구
파일 만들기, 고치기, 실행해 보기AIChatGPT 앱 (Codex)
커밋 전 세 가지 확인나 (언제나)GitHub Desktop의 Changes + 직접 실행
커밋, 푸시나. 교육 기간에는 직접, 실무에서는 확인을 마친 뒤 Codex에게 시켜도 됩니다GitHub Desktop 또는 ChatGPT 앱
풀, 브랜치 확인, 되돌리기나GitHub Desktop
PR 작성나GitHub 웹사이트
코드 검토, 승인, 병합, 배포팀장

커밋 버튼을 누가 누르든, 커밋 직전의 확인은 여러분이 합니다. 그것이 여러분이 하는 검토입니다. 코드를 전부 이해할 필요는 없지만, 업무 결과가 맞는지는 업무를 아는 여러분이 가장 잘 판단합니다. 그래서 AI에게 커밋을 맡길 때도 "작업이 끝나면 멈추고, 내가 확인한 뒤에 커밋해 달라고 하면 그때 커밋한다"가 규칙입니다. 교육 기간에 직접 해 보는 이유는 AI가 무엇을 대신하는지 알아야 문제가 생겼을 때 어디를 볼지 알 수 있기 때문입니다.

AI를 Git 해설자로 쓰는 것은 권장합니다.

지금 이 폴더에서 마지막 커밋 이후에 바뀐 내용을 쉬운 말로 설명해 줘. 아무것도 수정하지는 마.

오류 메시지를 AI에게 붙여 넣어 뜻을 물어봐도 됩니다. 다만 AI가 제안한 명령을 직접 실행하게 하지는 말고, 설명만 듣습니다.

8. 도구별 용도 (우리 TF의 기준)

도구우리 TF에서하는 일
GitHub Desktop기준 화면지금 상태 확인, 풀, 브랜치 확인, 이력 보기, 되돌리기. 교육 기간의 커밋·푸시
GitHub 웹사이트보조PR, 다른 사람 작업 보기. 파일을 직접 고치지는 않습니다
ChatGPT 앱 (Codex)작업파일 작업과 설명. 실무에서는 확인을 마친 뒤의 커밋·푸시도 가능. 앱에서 새 브랜치, worktree, PR 만들기는 하지 않습니다
터미널 (검은 화면, git 명령어)쓰지 않음인터넷에서 찾은 명령어를 따라 하지 않습니다

같은 폴더의 같은 Git 기록을 보는 것이라 두 프로그램을 함께 써도 상태는 하나입니다. 어느 쪽에서 커밋했든 GitHub Desktop의 History에 나타납니다. 헷갈릴 때는 GitHub Desktop을 기준으로 봅니다. 용어가 하나 다릅니다. ChatGPT 앱의 Revert 는 "커밋하지 않은 변경을 버린다"는 뜻으로 GitHub Desktop의 Discard Changes 에 해당합니다.

9. 다루지 않는 용어

rebase · stash · cherry-pick · fork · tag · SSH key · HEAD · reset · .gitignore 작성

검색하다 만나도 우리 방식에서는 쓸 일이 없거나 팀장이 처리합니다. 충돌(conflict) 이라는 말이 화면에 나오면 7편의 네 단계(멈춤 → 캡처 → Abort merge → 팀장에게 알림)를 따릅니다.

10. 확인 문제

① AI가 파일을 고치고 저장까지 했습니다. 팀장이 GitHub에서 볼 수 있나요? 아니요. 아직 작업 폴더에만 있습니다. 커밋하고 푸시해야 GitHub에 올라갑니다.
② 커밋하면 폴더 안의 모든 파일이 기록되나요? 아니요. Git이 관리하는 파일 중 체크된 변경만 담깁니다. .env 처럼 제외하도록 설정된 파일은 담기지 않습니다.
③ Revert를 하면 폴더 전체가 그 커밋 이전 시점으로 돌아가나요? 아니요. 선택한 커밋 하나가 만든 변경만 취소하는 새 커밋이 생깁니다. 실수한 커밋도 이력에 남습니다.
④ 팀장이 PR을 승인했습니다. 이제 사내 서버에 반영된 건가요? 아니요. 승인, 병합, 배포는 서로 다른 단계입니다. 팀장이 병합해야 main 에 반영되고, 서버 배포는 그 뒤의 별도 단계입니다.
⑤ 첫 PR이 병합됐습니다. 다음 작업 전에 work를 main에 맞춰야 하나요? 필요 없습니다. main 은 직접 고치지 않고 PR 병합으로만 바뀌므로, main 에 있는 내용은 모두 work 에서 간 것입니다. 같은 work 에서 공통 순서대로 시작하면 됩니다.
⑥ PR 검토를 기다리는 동안 관련 없는 새 기능을 work에 푸시해도 되나요? 하지 않습니다. 열려 있는 PR에 그 변경도 함께 들어가기 때문입니다. 병합된 뒤에 시작하거나, 급하면 팀장에게 먼저 알립니다.

이어서 읽기

© KYONGHO ENGINEERING & ARCHITECTS