변경 이력 · Git
Blyck은 사람과 AI가 바꾼 것을 **한 창(ChangeSet)**에 모아 보여 주고, 되돌릴 수 있게 합니다. 파일 변경은 git(코드 변경 기록 프로그램)이 기준이고, DB·서버 명령·패키지 설치는 Blyck의 변경 기록에 남습니다. 따로 잠그거나 준비할 필요 없이 저절로 기록됩니다.
| 기능 | 무료 / Pro |
|---|---|
ChangeSet 창, 되돌리기, git 상태·커밋·푸시·브랜치, .gitignore 편집, GitHub 연결 | 무료 |
| [✨ AI 메시지](커밋 메시지 자동 작성) | Pro |
| 자동 체크포인트(AI 답변이 끝날 때 자동 커밋) | AI(Pro)를 쓸 때만 생김. 이미 만든 체크포인트의 보기·되돌리기는 무료 |
ChangeSet 창 열기
섹션 제목: “ChangeSet 창 열기”
- [전체 변경] / [이 작업] 범위 바꾸기 · [GitHub] 연결·올리기
- Git 막대 — 브랜치·미커밋 수·커밋·푸시
- 바뀐 파일(📁 shop-api (git · 2)) — 줄마다 [되돌리기]로 마지막 커밋 상태로
- 줄을 누르면 오른쪽에 변경 전(빨강) / 변경 후(초록)
| 방법 | 처음 범위 |
|---|---|
Ctrl+Shift+H 또는 Ctrl+Shift+K | 전체 변경 |
| 명령 팔레트 → 변경 이력 / Git | 전체 변경 |
| AI 채팅 입력칸 아래의 📦 N | 이 작업(그 채팅) |
📦 옆 숫자는 그 채팅 폴더의 아직 커밋 안 된 파일 수 + DB/SSH/패키지 기록 수입니다.
화면 구성
섹션 제목: “화면 구성”| 부분 | 하는 일 |
|---|---|
| [변경] / [커밋 이력] 탭 | 바꾼 것 목록 / git 커밋 목록 |
| [전체 변경] / [이 작업] | 범위 바꾸기([이 작업]은 AI 채팅이 있어야 눌림) |
| 폴더 고르기 | AI 채팅에 폴더가 2개 이상일 때, 전체 또는 폴더 하나 |
| [GitHub] | GitHub 연결·올리기·가져오기 |
| git 막대 | 브랜치·커밋·푸시(아래) |
| 왼쪽 목록 / 오른쪽 자세히 | 줄을 누르면 오른쪽에 변경 전·후가 보입니다 |
| [보관 포함] · [전체 배포완료] | “배포완료”로 닫은 항목도 보기 / 지금 목록을 모두 배포완료(보관)로 닫기 |
| [백업 테이블 정리] | 되돌리기에 더는 필요 없는 서버 DB 백업 테이블 지우기 |
[변경] 탭 — 무엇이 보이나
섹션 제목: “[변경] 탭 — 무엇이 보이나”파일 (git 기준)
섹션 제목: “파일 (git 기준)”- [이 작업] 범위에서만 보입니다. 그 AI 채팅의 프로젝트 폴더에서 git이 “바뀌었다”고 보는 파일을 모두 보여 줍니다. 그래서 Claude·Codex가 자체 편집 기능으로 바꾼 파일, 터미널이나 다른 프로그램이 바꾼 파일도 다 나옵니다.
- 줄 모양:
📄 파일이름 · 상태기호(M바뀜,??새 파일 등)와 [되돌리기] 버튼.
DB / SSH / 패키지 (Blyck 기록 기준)
섹션 제목: “DB / SSH / 패키지 (Blyck 기록 기준)”| 아이콘 | 뜻 |
|---|---|
| 🛠 | DB 구조 변경(CREATE·ALTER 등) |
| 💾 | DB 데이터 변경(INSERT·UPDATE·DELETE) |
| 🖥 | 서버 명령 |
| 📦 | (앞) 패키지 설치 / (줄 끝) 보관됨 |
| 👤 / ✨ | 사람 / AI |
| ↩ | 되돌려짐 |
| ⚠ | 되돌릴 수 없음 |
줄을 누르면 실행 SQL, 되돌리기 SQL, 연결이 보입니다.
무엇이 기록되나
섹션 제목: “무엇이 기록되나”| 종류 | 언제 기록되나 |
|---|---|
| 파일 | 편집기 저장(👤), AI가 Blyck 도구로 쓴 파일(✨), 폴더 바꾸기, 되돌리기 |
| DB 구조 · 데이터 | 사람·AI가 DB를 바꿀 때(UPDATE·DELETE 전에 되돌리기용 백업을 만듦) |
| 서버 명령 | AI가 무언가를 바꾸는 명령을 실행할 때(rm, mv, 설치 등) |
| 패키지 | AI가 pip 패키지를 설치할 때 |
기록하지 않는 것: 읽기만 하는 작업, 1MB가 넘는 파일, Claude·Codex 자체 편집 기능으로 바꾼 파일(이건 git에만 보임), 사람이 터미널에 직접 친 명령.
되돌리기
섹션 제목: “되돌리기”| 무엇을 | 어디서 | 동작 |
|---|---|---|
| 커밋 안 된 파일 | [변경] 탭 파일 줄 [되돌리기] | 마지막 커밋 상태로 돌림 |
git에 처음 생긴 새 파일(??) | 같은 버튼 | 파일을 영구 삭제(휴지통으로 가지 않음) |
| DB 변경 | DB 기록 줄 → [DB 되돌리기] | 되돌리기 SQL 실행(DB가 연결돼 있어야 함) |
| 커밋 하나 | [커밋 이력] 탭 [되돌리기] | 그 커밋을 거꾸로 하는 새 커밋을 만듦 |
| AI 답변 하나 | 답변의 📝 N개 변경 칩 | 그 답변이 만든 커밋들을 되돌리는 새 커밋 |
| 서버 명령 · 패키지 설치 | — | 되돌릴 수 없음(기록만 남음) |
- 모든 되돌리기는 먼저 확인 창을 띄웁니다. 지우거나 덮는 것은 빨간 버튼입니다.
- AI가 되돌리기·변경 폐기·푸시를 할 때도 같은 확인 창을 거칩니다.
Git 막대 — 상태 · 커밋 · 푸시
섹션 제목: “Git 막대 — 상태 · 커밋 · 푸시”
- ⎇ main(브랜치 바꾸기) · + 새 브랜치 · "· 2 미커밋" · 🚫 제외 / 오른쪽 ⟳ 가져오기 · ⤓ 풀 · ⤒ 푸시
- 커밋 줄 — [✨ AI 메시지]가 바뀐 내용을 읽고 메시지 초안을 넣어 주면 [커밋] (🔍 검증은 위험한 변경 점검)
[변경] 탭 위쪽의 git 작업 줄입니다. AI 채팅에 프로젝트 폴더가 정해져 있을 때만 나타납니다. 로컬과 원격(SSH) 폴더 모두 됩니다.
- git 저장소가 아니면 **[⎇ Git 저장소 초기화]**로 저장소를 만들고 첫 커밋을 남깁니다.
| 부분 | 하는 일 |
|---|---|
⎇ 브랜치 / + | 브랜치 바꾸기 / 새 브랜치 만들기 |
↑N ↓M · {n} 미커밋 | 올릴 커밋 / 받을 커밋 / 커밋 안 된 파일 수 |
| [🚫 제외] | .gitignore 편집 창 |
| ⟳ / ⤓ / ⤒ | 가져오기(fetch) / 받아서 합치기(pull) / 올리기(push) |
| 커밋 메시지… 칸 | 커밋 설명 쓰기 |
| [✨ AI 메시지] | AI가 바뀐 내용을 읽고 메시지 초안을 넣어 줌 (Pro) |
| [커밋] | 커밋 |
| [🔍 검증] | 위험한 변경 점검 |
커밋하고 올리기
섹션 제목: “커밋하고 올리기”Ctrl+Shift+K로 창을 열고 **[이 작업]**을 눌러 바뀐 파일을 확인합니다.- 메시지를 쓰거나 **[✨ AI 메시지]**를 누릅니다.
- [커밋] → “커밋 완료 1a2b3c4”.
- **⤒**를 눌러 올립니다.
🚫 제외 (.gitignore 편집)
섹션 제목: “🚫 제외 (.gitignore 편집)”[🚫 제외] → Git 추적 제외 설정 창에서 패턴을 적고 저장합니다. 바뀐 파일이 폴더별·확장자별로 몇 개인지 보여 주고, 📋 권장 파일 패턴이나 자주 쓰는 패턴: 칩으로 흔한 패턴을 한 번에 넣을 수 있습니다. **이미 추적 중인 파일도 추적 해제 (파일 보존)**가 처음부터 켜져 있어, 이미 추적 중인 파일도 추적에서 빠집니다(파일은 디스크에 남음). 원하지 않으면 끄고 저장하세요. 커밋해야 반영됩니다.
🔍 검증
섹션 제목: “🔍 검증”지금 작업의 기록을 보고 위험한 것을 찾아 ❌/⚠/✅로 보여 줍니다.
WHERE없는UPDATE/DELETEDROP COLUMN/DROP TABLENOT NULL추가- 새 함수가 생겼는데 테스트 파일은 안 바뀜
- 코드에서 쓰는 환경 변수가
.env에 없음
[커밋 이력] 탭
섹션 제목: “[커밋 이력] 탭”- 최근 50개 커밋을 보여 줍니다. 커밋을 누르면 전체 메시지와 바뀐 내용이 보입니다.
- 서버에만 있는 커밋은 ⬇ GitHub에서 들어올 커밋 {n}개로 따로 보입니다.
- **[되돌리기]**는 그 커밋을 거꾸로 하는 새 커밋을 만듭니다. 충돌이 나면 터미널에서 직접 정리하세요.
자동 체크포인트와 답변별 되돌리기 (Pro)
섹션 제목: “자동 체크포인트와 답변별 되돌리기 (Pro)”AI 답변 한 번이 끝날 때마다 바뀐 파일을 자동으로 커밋해 두는 안전벨트입니다(메시지는 checkpoint:로 시작). 잘못되면 답변 단위로 쉽게 되돌립니다.
켜는 곳: AI 채팅 칸 위쪽 ⋯ → 채팅 설정 → 표시 → 🖥 표시 / 스트리밍 → 작업마다 자동 git 체크포인트. 기본은 꺼져 있습니다.
- 위 설정을 켭니다. 프로젝트 폴더가 git 저장소여야 합니다.
- AI에게 일을 시킵니다.
- 답변이 끝나면 ”✓ 체크포인트 1a2b3c4” 알림이 뜨고, 답변에 📝 N개 변경 칩이 붙습니다.
- 칩을 누르면 그 답변이 바꾼 내용을 봅니다.
- 되돌리려면 [이 답변 되돌리기]. 마음이 바뀌면 [다시 적용].
- 로컬 폴더만 됩니다. 원격 폴더는 체크포인트를 만들지 않습니다.
- 체크포인트도 그 폴더의 모든 변경을 커밋합니다(사람이 고친 것 포함).
- 작업 폴더에 커밋 안 된 다른 변경이 있으면 답변 되돌리기가 실패할 수 있습니다.
GitHub 연결
섹션 제목: “GitHub 연결”여는 곳: ChangeSet 창 위쪽 [GitHub] 버튼.
처음 연결
섹션 제목: “처음 연결”- **[🔗 GitHub 연결]**을 누르면 코드가 보이고 브라우저의 GitHub 인증 페이지가 열립니다.
- 브라우저에서 코드를 넣고 승인합니다.
- Blyck에 **GitHub 연결됨 ✓**과 ✓ @아이디가 보입니다.
올리기와 가져오기
섹션 제목: “올리기와 가져오기”| 하고 싶은 일 | 방법 |
|---|---|
| 새 저장소로 올리기 | 🚀 GitHub에 올리기 → 새 저장소 → 이름(폴더 이름이 미리 들어 있음)·비공개(기본) → [올리기] |
| 기존 저장소에 연결 | 기존 저장소 → 목록에서 골라 [연결](지금 브랜치도 올림) |
| GitHub에서 가져오기 | 📥 GitHub에서 가져오기 → 저장소 고르기 → [가져오기] → 상위 폴더 선택. 지금 칸이 AI 채팅이면 가져온 폴더가 그 채팅의 작업 폴더가 됩니다 |
| 연결 끊기 | [연결 해제] |
- 연결 열쇠(토큰)는 OS 암호화로 저장합니다.
- GitHub에 연결돼 있으면 github.com 저장소로 푸시할 때 자동으로 로그인합니다.
되돌리기의 한계
섹션 제목: “되돌리기의 한계”| 되돌릴 수 없는 것 | 대신 할 것 |
|---|---|
| 서버 명령(SSH·WinRM), 패키지 설치 | 직접 정리 |
| 1MB 넘는 파일 | git으로만 |
| Claude·Codex 자체 편집 기능으로 바꾼 파일 | **[이 작업]**의 git 파일 줄(커밋 전), 또는 체크포인트·커밋 되돌리기 |
| git에 처음 생긴 새 파일의 “되돌리기” | 영구 삭제됨 — 누르기 전에 꼭 확인 |
DROP·TRUNCATE, INSERT | 되돌리기 SQL·백업 없음 |
SQLite에서 1,000행 넘게 바꾼 데이터, 기본키 없이 UPDATE한 데이터 | 백업 없음 |
서버 DB에서 조인·서브쿼리 같은 복잡한 UPDATE·DELETE, 수동 커밋 모드의 변경 | 백업 없음 |
| DB 되돌리기 자체 | ”되돌리기의 되돌리기”는 안 됨 |
기록 보관 규칙
섹션 제목: “기록 보관 규칙”같은 대상마다 최근 40개, 14일, 전체 2GB까지 보관합니다. “배포완료”로 닫은 항목은 계속 남습니다. 기록 파일은 Blyck 사용자 폴더의 blyck-history.db입니다.
자주 묻는 질문
섹션 제목: “자주 묻는 질문”Q. Ctrl+Shift+H로 열었는데 파일이 하나도 안 보여요.
[전체 변경] 범위는 파일을 보여 주지 않습니다. **[이 작업]**을 누르세요(AI 채팅 필요).
Q. [이 작업] 버튼이 눌리지 않아요. 열린 AI 채팅이 없습니다. AI 채팅을 열거나 채팅의 📦 칩으로 여세요.
Q. git 막대가 안 보여요. AI 채팅에 프로젝트 폴더가 없습니다. AI 채팅에서 작업 폴더를 정하세요.
Q. 푸시가 바로 실패해요. 로그인 정보가 없습니다. **[GitHub]**에서 연결하거나 터미널에서 git 자격 증명을 설정하세요.
Q. 커밋에 원하지 않는 파일이 들어갔어요. [커밋]은 모든 변경을 커밋합니다. **[🚫 제외]**로 먼저 빼세요.
Q. 체크포인트가 안 생겨요. 설정이 꺼져 있거나, 원격 폴더이거나, git 저장소가 아니거나, 바뀐 것이 없습니다.
Q. DB 되돌리기 때 “DB 연결 먼저”가 떠요. DB 연결이 닫혔습니다. DB 트리에서 다시 연결하세요.