AI 도구와 함께 쓰기
이 글의 목차
소요: 15분 · 버전: v0.1 (2026-09-30) · 12장
| 이 장의 질문 | AI 도구에 일을 맡길 때 Git은 누가 다루는가 |
|---|---|
| 다루는 것 | AI 도구와 사람의 역할 나누기, 커밋 전 세 가지 확인, 올리면 안 되는 파일 막기(.gitignore), AI에게 부탁할 때 쓸 문장 |
| 다루지 않는 것 | 특정 AI 도구의 설치·설정 방법, 프로그래밍 |
| 이 장을 마치면 | AI 도구가 고친 파일을 확인한 뒤 내 손으로 커밋할 수 있고, 올리면 안 되는 파일을 Git이 무시하게 할 수 있습니다 |
1. AI가 고치고, 사람이 확인하고 기록합니다
AI 도구가 파일을 다루는 방식은 크게 두 가지입니다.
| 방식 | 예 | 파일이 바뀌는 방법 |
|---|---|---|
| 대화형 | ChatGPT, Claude 같은 채팅 | AI가 보여 준 내용을 내가 복사해 파일에 붙여 넣고 저장 |
| 코딩 에이전트 | Codex, Claude Code 같은 도구 | AI가 폴더 안의 파일을 직접 만들고 고침 |
어느 쪽이든 결과는 같습니다. 파일이 바뀌면 GitHub Desktop의 Changes 에 나타납니다. Git 입장에서는 사람이 고친 것과 AI가 고친 것이 똑같이 보입니다.
그래서 역할을 이렇게 나눕니다.
- AI 도구: 파일을 만들고 고치고, 바뀐 내용을 설명합니다.
- 사람: 바뀐 내용을 확인하고, 커밋·푸시·PR·병합을 합니다.
코딩 에이전트는 커밋이나 푸시까지 스스로 할 수 있습니다. 익숙해지기 전에는 커밋은 사람이 GitHub Desktop에서 합니다. 커밋 버튼을 누르기 직전이 변경을 확인할 가장 좋은 때이기 때문입니다.
2. 커밋 전 세 가지 확인
| 확인할 것 | 방법 | 걸리면 | |
|---|---|---|---|
| ① | 예상하지 못한 파일이 바뀌지 않았나 | Changes 목록의 파일 이름을 봅니다 | AI에게 그 파일을 왜 바꿨는지 묻습니다 |
| ② | 요청한 대로 동작하나 | 파일을 열거나 실행해 봅니다. 코드를 한 줄씩 이해할 필요는 없습니다 | 커밋하지 않고 다시 요청합니다 |
| ③ | 민감한 자료가 섞이지 않았나 | diff를 훑어봅니다 | 그 부분을 지우거나 7장의 Discard Changes로 버립니다 |
③에서 찾을 것:
- 비밀번호, API 키(프로그램이 서비스에 접속할 때 쓰는 비밀 문자열), 접속 토큰
- 이름·연락처 같은 개인정보
- 외부에 나가면 안 되는 문서의 내용
한 번 커밋·푸시한 내용은 7장의 Revert로 되돌려도 기록에는 남습니다. 민감한 자료는 커밋하기 전에 막는 것이 유일하게 확실한 방법입니다. 이미 올렸다면 혼자 해결하려 하지 말고 즉시 경험자에게 알립니다.
3. 실습: 올리면 안 되는 파일 막기 (.gitignore)
.gitignore 는 Git이 무시할 파일 목록을 적는 파일입니다. 여기에 적힌 파일은 폴더에 있어도 Changes에 나타나지 않고, 커밋·푸시되지 않습니다.
Current Branch 가 work 인지 확인하고 시작합니다.
-
VS Code에서 새 파일을 만들고 이름을
.gitignore로 입력합니다. 이름이 점(.)으로 시작합니다. -
아래 내용을 넣고 저장합니다.
비밀.txt *.env data/ -
새 파일
비밀.txt를 만들고연습용 비밀 메모라고 쓴 뒤 저장합니다. -
GitHub Desktop의 Changes를 봅니다.
.gitignore만 있고비밀.txt는 없습니다. -
메모
.gitignore 추가로 커밋하고 Push origin 을 누릅니다.
| 적는 법 | 뜻 |
|---|---|
비밀.txt | 이 이름의 파일 |
*.env | 이름이 .env 로 끝나는 모든 파일. * 는 "아무 이름"이라는 뜻 |
data/ | data 폴더와 그 안의 모든 것 |
.gitignore는 이미 커밋한 파일은 막지 못합니다. 새 파일을 만들기 전에 적어 두어야 합니다. 저장소를 만들 때 먼저 만들어 두는 습관을 들입니다.
4. AI에게 부탁할 때 쓸 문장
아래 문장을 복사해 요청 끝에 붙이면, AI가 Git을 대신 다루지 않고 사람이 확인하기 쉬운 형태로 결과를 줍니다.
커밋이나 푸시는 하지 마세요. 작업이 끝나면 바꾼 파일 목록과, 파일마다 무엇을 왜 바꿨는지 한 줄씩 알려 주세요.
아래 diff를 비개발자가 이해할 수 있게 설명해 주세요. 요청하지 않은 변경이나 비밀번호·개인정보가 있으면 따로 표시해 주세요.
이 변경에 맞는 커밋 메모를 "무엇을 왜" 한 줄로 세 가지 제안해 주세요.
5. AI가 이런 것을 권하면 멈추세요
AI 도구가 문제를 해결하려고 Git 명령을 권하거나 직접 실행하려 할 때가 있습니다. 아래 단어가 보이면 실행하지 않고 멈춥니다. 기록을 지우거나 덮어써서 되돌리기 어려운 명령입니다.
| 보이는 단어 | 하는 일 |
|---|---|
--force, -f (push와 함께) | GitHub의 기록을 내 기록으로 덮어씀 |
reset --hard | 커밋하지 않은 변경과 커밋을 지움 |
rebase | 기록을 다시 씀 |
clean -fd | Git이 모르는 파일을 폴더에서 지움 |
branch -D, push --delete | 브랜치를 지움 |
이 튜토리얼에서 배운 버튼(Commit, Push, Pull, Revert, Discard, Abort merge)으로 해결되지 않는 문제는 경험자에게 요청합니다.
확인
확인 문제
① AI 도구가 파일 5개를 고쳤다고 했는데 Changes에는 7개가 있습니다. 어떻게 하나요?
커밋하지 않고, 나머지 2개를 왜 바꿨는지 AI에게 묻습니다. 필요 없는 변경이면 Discard Changes로 버립니다.② 이미 커밋한 설정 파일을 .gitignore에 적었습니다. 이제 GitHub에서 사라지나요?
사라지지 않습니다. .gitignore는 앞으로 새로 생기는 변경만 막습니다. 이미 올라간 민감한 파일은 경험자에게 알립니다.③ AI가 문제를 고치려면 git push --force를 실행하라고 합니다. 따라야 하나요?
따르지 않습니다. GitHub의 기록을 덮어쓰는 명령입니다. 멈추고 경험자에게 요청합니다.자주 발생하는 문제
| 증상 | 확인할 것 |
|---|---|
.gitignore 에 적었는데 파일이 Changes에 계속 보입니다 | 파일 이름이 정확한지(띄어쓰기, 확장자), .gitignore 를 저장했는지 봅니다. 이미 커밋한 적이 있는 파일이면 막히지 않습니다 |
.gitignore 파일이 폴더에서 보이지 않습니다 | 점으로 시작하는 파일은 숨김 파일로 취급될 수 있습니다. VS Code 파일 목록에서는 보입니다 |
| AI 도구가 이미 커밋해 버렸습니다 | History에서 커밋 내용을 확인합니다. 잘못됐으면 7장의 Revert로 되돌립니다. 푸시 전이라면 Revert 후 함께 푸시합니다 |