1 왜 Git인가
1.1 파일 관리의 흔한 문제
사무 현장에서 파일 관리는 보통 이렇게 된다:
# 실무자 A가 관리하는 '문서' 파일이 있다
문서.xlsx
문서_최종.xlsx
문서_최종2.xlsx
문서_진짜최종.xlsx
문서_진짜최종_수정.xlsx
문서_진짜최종_수정_박팀장검토.xlsx
- 어떤 파일이 최신인지 모른다
- 누가 언제 무엇을 바꿨는지 알 수 없다
- 이전 버전으로 돌아가려면 찾기 어렵다
- 여러 사람이 동시에 작업하면 파일이 뒤섞인다
Git은 이 문제를 해결하는 버전 관리 시스템이다.
1.2 Git으로 무엇이 달라지나
| 기존 방식 | Git 사용 후 |
|---|---|
| 파일 이름에 날짜/버전 붙임 | 파일 이름은 하나, 이력이 자동 기록 |
| 누가 바꿨는지 모름 | 누가 언제 무엇을 바꿨는지 기록됨 |
| 이전 버전 복원 불가 | 언제든 이전 상태로 복원 가능 |
| 이메일로 파일 공유 | 링크 하나로 최신 파일 공유 |
| 파일 파편화 | 한 곳에 모든 파일 집중 관리 |
가장 큰 장점:
* 명령어 5개만 알면 된다.
* 그 이외의 모든 예외 케이스 및 편의 기능을 Copilot Agent가 대신 처리해준다.
1.3 Git에서 저장 가능한 파일 형식
| 순위 | 형식 | 저장 가능 | 변경 내역 추적 | Agent 접근성 | 비고 |
|---|---|---|---|---|---|
| 1 | .json (Copilot용 권장) |
O | O | 최고 | 구조화 텍스트, 긴 서술형 셀도 안전 |
| 2 | .md (문서 작성 권장) |
O | O | 좋음 | 줄 단위 변경 추적, 서술형 문서에 적합 |
| 3 | .csv (DRM 이슈 존재) / .tsv |
O | O | 좋음 | 셀 단위 변경 추적, DRM 해제 필요 |
| 4 | .txt |
O | O | 좋음 | |
| 5 | .xlsx (엑셀, DRM 이슈 존재) |
O | X | 나쁨 | 바이너리, 변경 추적 불가, Agent 파싱 불가 |
| 6 | .pdf |
O | X | 나쁨 |
- 문서(회의록, 보고서) →
.md권장 - 데이터(표, 명단) →
.json권장 (xlsx를 Copilot에 의해 만들어진 스크립트로 변환) - xlsx → Git 저장은 가능하나 변경 추적·Agent 활용 모두 불가, 최후 수단으로만 사용
DRM(문서 보안)이 걸린 파일은 Git에 올리기 전에 반드시 DRM을 해제해야 한다.
- DRM이 걸린 채로 github에 올리면 다른 팀원이 파일을 열 수 없다
- Agent(Copilot)도 암호화된 파일 내용을 읽지 못한다
- CSV/xlsx는 수정시 DRM이 걸린다.
2 준비물 설치
2.1 Git 설치
Copilot에게 “Git 설치 해줘”라고 요청하면 아래와 같은 단계별 가이드가 생성된다:
1. https://git-scm.com/download/win 접속 2. Download for Windows 클릭 → 설치 파일 다운로드 3. 설치 중 모든 옵션은 기본값(Next) 그대로 진행 4. 설치 완료 후 확인:
2.2 GitHub 계정 생성
GitHub는 Git 저장소를 인터넷에 올려두는 웹 서비스다. 구글 드라이브와 비슷하지만 버전 관리 기능이 있다.
- https://github.com 접속
- Sign up → 이메일, 비밀번호, 사용자명 입력
- 이메일 인증 완료
2.3 VS Code 설치 (이미 설치되어 있으면 건너뜀)
- https://code.visualstudio.com 접속
- Download for Windows 클릭 → 설치
3 처음 한 번만 하는 설정
3.1 Git에 내 이름과 이메일 등록
터미널(또는 VS Code 터미널)에서 아래 명령어를 한 번만 실행한다. GitHub 가입 시 사용한 이메일을 입력한다.
설정 확인:
3.2 VS Code에서 GitHub 로그인
- VS Code 왼쪽 하단 계정 아이콘(사람 모양) 클릭
- Sign in with GitHub 선택
- 브라우저가 열리면 GitHub 계정으로 로그인 → Authorize 클릭
- VS Code로 자동 복귀
4 저장소(Repository) 만들기
저장소(repo)는 파일들을 한데 모아 버전 관리하는 폴더라고 생각하면 된다.
4.1 GitHub에서 새 저장소 만들기
- GitHub Web Page 접속 https://github.com → 오른쪽 상단 + → New repository
- 설정:
- Repository name:
문서관리(영문 권장:documents) - Private 선택 (팀 내부 문서라면)
- Add a README file 체크
- Repository name:
- Create repository 클릭
4.2 저장소를 내 컴퓨터로 복사 (Clone)
- GitHub 저장소 페이지에서 초록색 Code 버튼 클릭
- HTTPS 탭의 주소 복사 (예:
https://github.com/홍길동/documents.git) - VS Code 실행 → 상단 메뉴에서 Terminal → New Terminal
- 저장할 폴더 선택 (예:
C:\Users\내이름\Documents\) - 열린 Terminal에
git clone <복사한 주소>입력 → Enter - Open 클릭 → VS Code에서 git 저장소 폴더가 열림
git clone https://github.com/team/documents.git
# 출력 예시:
# Cloning into 'documents'...
# remote: Enumerating objects: 42, done.
# remote: Counting objects: 100% (42/42), done.
# remote: Compressing objects: 100% (28/28), done.
# remote: Total 42 (delta 8), reused 38 (delta 4)
# Receiving objects: 100% (42/42), 15.23 KiB | 3.81 MiB/s, done.
# Resolving deltas: 100% (8/8), done.Cloning into 'documents'... 메시지와 함께 진행률이 나타나다가 마지막 줄에 Resolving deltas: 100% (N/N), done. 이 보이면 성공이다. 명령을 실행한 폴더 안에 documents 폴더가 생긴다.
이제 내 컴퓨터에 documents 폴더가 생겼다. 이 폴더 안에서 작업하면 된다.
5 팀 협업 규칙: 충돌 없이 일하는 방법
- Git에서 같은 파일을 여러 명이 동시에 수정하면 충돌(conflict)이 발생한다.
- 충돌 해결은 개발자도 까다로운 작업이다.
해결책은 단순하다: 각자 담당 폴더/파일을 정해서 겹치지 않게 작업한다.
documents/
├── 영업팀/ ← 김철수 담당
│ ├── 고객명부.csv
│ └── 영업일지.md
├── 인사팀/ ← 이영희 담당
│ ├── 직원명단.csv
│ └── 채용현황.md
├── 재무팀/ ← 박민준 담당
│ ├── 예산현황.csv
│ └── 지출내역.md
└── 회의록/ ← 회의 때마다 본인이 추가
├── 2026-03-11-주간회의.md
└── 2026-03-04-주간회의.md
규칙: 내 담당 폴더 안의 파일만 수정한다. 다른 사람 담당 폴더는 읽기만 한다. 이 규칙만 지키면 브랜치, 충돌 해결 같은 고급 기능은 전혀 몰라도 된다.
6 기본 논리적 작업 흐름
매일 반복하는 작업은 4단계다:
작업 시작 전 (중요): pull (최신 파일 받기)
↓
파일 수정/추가
↓
add + commit (변경사항 저장 + 메모)
↓
push (GitHub에 업로드)
작업 순서가 중요하다: 반드시 pull 먼저 → 작업 (수정+add+commit) → push 순서를 지킨다. 담당 폴더가 나뉘어 있으면 pull 시 다른 사람과 충돌이 날 일이 없다.
6.0.1 VS Code에서 하는 방법
VS Code에는 터미널 대신 마우스로 클릭하여 Git 작업을 할 수 있는 Source Control 패널이 있다.
- 왼쪽 사이드바에서 분기(가지) 아이콘 클릭 (단축키:
Ctrl+Shift+G) - 파일을 수정하면 수정된 파일 목록이 자동으로 나타난다
- 파일 옆 + 버튼 클릭 →
git add에 해당 (스테이징) - 상단 Message 칸에 작업 내용 입력 →
git commit에 해당 - Commit 버튼 클릭
- 상단 Sync Changes 버튼 클릭 →
git pull+git push를 한 번에 실행
Sync Changes는 pull(최신 받기)과 push(업로드)를 자동으로 순서대로 실행한다. 버튼 옆에 표시된 숫자(예: ↓2 ↑1)는 받아올 커밋 수(↓)와 올릴 커밋 수(↑)이다.
6.0.2 터미널 명령어로 하는 방법 (동일한 동작)
# 1. 작업 시작 전 — 최신 상태로 동기화
git pull
# 출력 예시 (새 파일이 있을 때):
# remote: Enumerating objects: 5, done.
# remote: Total 3 (delta 2), reused 0 (delta 0)
# Unpacking objects: 100% (3/3), done.
# Updating a1b2c3d..e4f5g6h
# Fast-forward
# 인사팀/직원명단.csv | 2 +-
# 1 file changed, 1 insertion(+), 1 deletion(-)
# 출력 예시 (이미 최신 상태일 때):
# Already up to date.# 2. 파일 수정 후 — 현재 변경 상황 확인 (선택사항이지만 권장)
git status
# 출력 예시:
# On branch main
# Your branch is up to date with 'origin/main'.
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# modified: 영업팀/고객명부.csv
#
# no changes added to commit (use "git add" and/or "git commit -a")# 3. 변경사항 스테이징 (저장할 파일 선택)
git add .
# add 후 status 확인:
git status
# 출력 예시:
# On branch main
# Your branch is up to date with 'origin/main'.
#
# Changes to be committed:
# (use "git restore --staged <file>..." to unstage)
# modified: 영업팀/고객명부.csv# 4. 커밋 (변경사항 저장 + 메모)
git commit -m "3월 신규 고객 10명 추가"
# 출력 예시:
# [main a1b2c3d] 3월 신규 고객 10명 추가
# 1 file changed, 10 insertions(+)# 5. GitHub에 업로드
git push
# 출력 예시:
# Enumerating objects: 5, done.
# Counting objects: 100% (5/5), done.
# Compressing objects: 100% (3/3), done.
# Writing objects: 100% (3/3), 412 bytes | 412.00 KiB/s, done.
# To https://github.com/team/documents.git
# e4f5g6h..a1b2c3d main -> mainpush 후 마지막 줄 main -> main 이 보이면 성공이다. GitHub 웹페이지에서 내 파일이 올라간 것을 직접 확인할 수 있다.
7 핵심 명령어 5가지
이것만 알면 충분하다:
| 명령어 | 하는 일 | 터미널 |
|---|---|---|
clone |
저장소를 내 컴퓨터로 복사 (최초 1회) | git clone <저장소 주소> |
pull |
남이 올린 최신 파일 받기 | git pull |
add |
저장할 파일 선택 | git add . |
commit |
변경사항 저장 + 메모 | git commit -m "작업사항 메모" |
push |
GitHub에 업로드 | git push |
매일 사용하는 순서: pull → 작업 → add → commit → push
브랜치(branch), 머지(merge), 리베이스(rebase) 등 나머지 기능은 지금 단계에서 몰라도 된다. 각자 담당 폴더만 건드리면 이 5가지로 충분하다.
8 권장 폴더 구조
팀원 수만큼 담당 폴더를 나눠 배정한다. 각자 자기 폴더만 수정한다.
documents/ ← GitHub 저장소 루트
├── 영업팀/ ← 김철수 담당
│ ├── 고객명부.csv
│ └── 영업일지.md
├── 인사팀/ ← 이영희 담당
│ ├── 직원명단.csv
│ └── 채용현황.md
├── 재무팀/ ← 박민준 담당
│ ├── 예산현황.csv
│ └── 지출내역.md
├── 회의록/ ← 누구나 자유롭게 추가 (같은 파일을 여러 사람이 수정하면 안됨)
│ ├── 2026-03-11-주간회의.md
│ └── 2026-03-04-주간회의.md
└── README.md ← 저장소 소개 + 담당자 목록
회의록처럼 여러 명이 쓰는 폴더는 파일을 수정하지 않고 새 파일을 추가하는 방식으로 운영한다.
파일명 작성 규칙을 정하면 충돌이 발생할 일이 없다.
예) {파일명}{이름이니셜}{날짜}.md = 주간회의_hgd_20260311.md.md나 .json으로 저장하면 파일 용량도 작고, 나중에 누가 어떤 셀을 바꿨는지 Git이 추적해준다.
참고: Notion, Loop 모두 Markdown(.md)를 기본 베이스로 한다
9 GitHub 파일 크기 제한
| 항목 | 제한 |
|---|---|
| 파일 1개 최대 크기 | 100MB (초과 시 업로드 불가) |
| 파일 1개 권장 크기 | 50MB 이하 |
| 저장소 전체 권장 크기 | 1GB 이하 |
| 파일 개수 | 제한 없음 |
일반 업무용 엑셀/CSV 파일은 대부분 수 MB 이하이므로 제한에 걸릴 일은 거의 없다. 만약, 총 저장소 크기가 1~3GB를 넘는다면, 다른 저장소로 분리하거나 불필요한 파일을 삭제하는 것을 권장한다.
10 실수했을 때 대처법
(웬만하면 Copilot Claude Sonnet 4.6 에게 물어보면 해결 가능)
10.1 파일을 잘못 수정했을 때 (아직 commit 전)
VS Code: Source Control 패널에서 해당 파일 우클릭 → Discard Changes
10.2 이전 버전 파일 내용 확인하기
- VS Code: 파일 우클릭 → Open Timeline → 원하는 시점 클릭 → 해당 시점의 내용 확인 가능
- 또는 github 웹 페이지에서 해당 파일 클릭 → History → 원하는 시점 클릭 → 해당 시점의 내용 확인 가능
11 자주 발생하는 에러와 해결법
비개발자가 자주 마주치는 에러 4가지와 해결 방법을 정리했다. 당황하지 말고 메시지를 읽고 해당 항목을 찾아 해결한다.
11.1 push 거절 — “먼저 pull 하세요”
다른 팀원이 먼저 GitHub에 파일을 올렸는데, 내가 그것을 받지 않고 push 하려 할 때 발생한다.
에러 메시지:
error: failed to push some refs to 'https://github.com/team/documents.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
해석: “원격 저장소에 내가 아직 받지 않은 변경사항이 있다. 먼저 pull 해서 합친 다음 push 하라.”
해결:
각자 담당 폴더가 나뉘어 있다면 pull 후 즉시 push 가능하다 (충돌 없음).
11.2 인증 실패 — “로그인이 안 돼요”
GitHub 계정 정보가 잘못되었거나 만료되었을 때 발생한다.
에러 메시지:
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/team/documents.git/'
해석: “GitHub 인증에 실패했다. 계정 정보를 확인하라.”
해결: 1. VS Code 왼쪽 하단 계정 아이콘 클릭 → Sign out → 다시 Sign in with GitHub 2. 또는 Windows 자격 증명 관리자에서 git:https://github.com 항목 삭제 후 재시도
11.3 커밋 못 함 — “이름/이메일 설정 안 됨”
처음 설치 후 이름과 이메일을 등록하지 않았을 때 발생한다.
에러 메시지:
Author identity unknown
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
해석: “커밋 기록에 넣을 작성자 정보가 없다. 이름과 이메일을 등록하라.”
해결: 메시지에 나온 대로 실행한다.
11.4 pull 실패 — “저장 안 한 변경사항이 있어요”
파일을 수정했는데 commit 하지 않은 상태에서 pull 하려 할 때 발생한다.
에러 메시지:
error: Your local changes to the following files would be overwritten by merge:
영업팀/고객명부.csv
Please commit your changes or stash them before you merge.
Aborting
해석: “수정했지만 아직 저장(commit)하지 않은 파일이 있다. pull 하면 그 수정내용이 덮어씌워질 수 있으니 먼저 commit 하거나 임시 저장(stash) 하라.”
해결: 내 수정을 먼저 commit 한 후 pull 한다.
- 설치: Git + GitHub 계정 + VS Code (처음 한 번)
- 설정: 이름/이메일 등록 (처음 한 번)
- Clone: 저장소를 내 컴퓨터로 복사 (처음 한 번)
- 팀 규칙: 각자 담당 폴더만 수정 → 충돌 없음
- 매일 하는 작업:
pull→ 파일 수정 →add→commit→push
알아야 할 명령어는 clone, pull, add, commit, push 5가지가 전부다.