Skip to content

Git · ChangeSet

Blyck은 버전관리를 두 층으로 제공합니다. Git으로 파일을, ChangeSet으로 Git이 못 보는 것(DB · SSH · 패키지)까지 추적해, 무엇이 바뀌었든 확인하고 되돌릴 수 있습니다.

Ctrl+Shift+H로 변경 이력 창을 열거나, AI 채팅 하단의 📦 ChangeSet 칩을 클릭해도 같은 창이 열립니다.


MinGit 번들 — git 설치가 필요 없습니다

Section titled “MinGit 번들 — git 설치가 필요 없습니다”

Windows 빌드에는 MinGit이 내장되어 있습니다. 시스템에 git이 설치되어 있으면 그것을 우선 사용하고, 없으면 번들 MinGit으로 자동 폴백합니다. git을 설치한 적 없는 PC에서도 커밋·푸시·ChangeSet이 전부 동작합니다.


ChangeSet — 모든 변경의 단일 이력

Section titled “ChangeSet — 모든 변경의 단일 이력”

프로젝트에서 일어나는 변경이 종류를 가리지 않고 한 곳에 기록됩니다. 잠금이나 체크아웃 절차 없이, 변경이 일어나는 순간 자동으로 들어갑니다. 읽기 전용 작업(SELECT · file_read · ls)은 기록하지 않습니다.

종류기록 내용
파일변경 전/후 내용, 시각, 출처(👤 사람 / ✨ AI)
DB DDLSQL 원문, 자동 생성된 역SQL, 위험도
DB DMLSQL 원문, 영향 행 수, 되돌리기용 사전 백업 행
SSH 실행실행 명령, 서버, 출력 일부, 위험도
패키지패키지명, 런타임

창 열기: Ctrl+Shift+H 또는 AI 채팅 하단 📦 칩. [전체 변경 | 이 작업] 토글로 전체 이력과 현재 채팅 작업 범위를 전환합니다.


ChangeSet 창은 세 탭으로 구성됩니다.

미커밋 파일(git status 기반)과 DB·SSH·패키지 변경(history 기반)을 함께 표시합니다. 항목을 선택해 되돌리기를 실행할 수 있습니다.

  • 미커밋 파일 → git checkout(수정 취소) 또는 신규 파일 삭제
  • DB 변경 → 자동 생성된 역SQL 실행
  • SSH 변경 → 역명령 추정 가능 시 자동 제시

git log를 기반으로 커밋 목록을 표시합니다. 항목 클릭 시 해당 커밋의 git show diff를 확인하고, [이 커밋 되돌리기] 버튼으로 git revert를 실행합니다(히스토리 보존, 강제 덮어쓰기 아님).

파일 변경은 git push로, DB 변경은 SQL 마이그레이션 스크립트로 내보냅니다.

  • 검증(verify) — WHERE 없는 UPDATE/DELETE, 위험한 DDL(DROP · NOT NULL 추가), 새 함수에 대응하는 테스트 누락 등을 점검합니다.
  • 내보내기(export) — SQL 마이그레이션 스크립트, PR용 git 명령 묶음, 또는 JSON으로 내보냅니다. 개발 DB에서 작업한 내용을 운영 반영용으로 정리할 때 사용합니다.

이력의 어떤 항목이든 선택해 되돌릴 수 있습니다.

종류되돌리기 방식
파일변경 전 내용으로 복원
DDL자동 생성된 역SQL 실행 (CREATEDROP, ADD COLUMNDROP COLUMN)
DML실행 직전 백업된 행으로 복원 (1층/2층 백업, 아래 참고)
SSH역명령 추정 가능 시 자동 제시(mkdirrmdir), 불가 시 수동 안내

AI가 DML을 실행하기 전에 자동으로 백업을 생성합니다.

  • 1층 — 단일 테이블·WHERE 파싱·PK·≤1,000행인 경우: 변경 전 행 JSON을 이력 DB(blyck-history.db)의 dml_backup에 저장합니다. 되돌리기 시 즉시 복원합니다.
  • 2층 — 대량·복잡 쿼리·PK 없는 경우: 대상 DB 안에 백업 테이블(blyck_bak_…)을 생성해 보관합니다. 되돌리기가 완료되면 백업 테이블은 자동 삭제됩니다.
  • 실행 전 역작업 미리보기 + 확인 모달 — DROP / DELETE는 빨간 경고
  • 중간 항목을 되돌리면 “이후 N개 변경이 덮어쓰입니다” 경고
  • 현재 값이 기록된 값과 다르면(다른 곳에서 또 바뀜) 강제 여부를 다시 확인
  • 되돌리기 자체도 새 이력으로 기록됩니다 — 되돌리기의 되돌리기가 가능합니다

이력은 %APPDATA%\Blyck\blyck-history.db에 저장됩니다.

정책기준
대상당 최대 보관최근 40개 항목
자동 정리 주기14일 경과 항목 삭제
DB 크기 상한2 GB
단일 파일 크기 상한1 MB 초과 파일은 기록 제외

ChangeSet 창의 커밋 이력 탭 또는 명령 팔레트(Ctrl+Shift+P)에서 Git 작업을 실행합니다.

작업설명
체크포인트작업 중간 자동 세이브 포인트를 타임스탬프 커밋으로 생성합니다. 실험 중 언제든 돌아올 수 있습니다.
작업 단위 커밋현재 채팅(작업)에서 발생한 파일·DB·SSH 변경을 모아 한 커밋으로 정리합니다. ✨ 버튼으로 AI 커밋 메시지를 자동 생성합니다.
선택 커밋 / 전체 커밋파일을 골라 커밋하거나 전체를 한 번에 커밋합니다.
diff워킹 트리, 특정 커밋, 두 커밋 사이, 특정 작업 범위 등 원하는 기준으로 비교합니다.
discard워킹 트리 변경을 취소합니다.
log커밋 이력을 조회합니다.
push현재 브랜치를 원격 저장소에 푸시합니다.

GitHub OAuth device flow로 로그인합니다. 브라우저에서 코드를 한 번 입력하면 완료되고, 토큰은 OS 자격증명 저장소(safeStorage)에 암호화 보관됩니다.

  1. 명령 팔레트(Ctrl+Shift+P) → “GitHub 로그인” 또는 ChangeSet 창 상단 GitHub 버튼
  2. 브라우저가 열리면 표시된 코드를 입력해 인증합니다
  3. 완료되면 push/pull 인증이 자동으로 처리됩니다
작업설명
Publish로컬 프로젝트를 GitHub에 새 저장소로 만들어 푸시합니다
CloneGitHub 저장소를 로컬 폴더로 복제합니다
Link기존 로컬 저장소를 GitHub 저장소와 연결합니다

연동 후 push/pull 인증은 자동으로 처리됩니다. 토큰은 OS 자격증명 저장소에 암호화되어 저장되므로 매번 로그인할 필요가 없습니다.



Q. git을 설치하지 않았는데 커밋이 되나요? Windows 빌드에는 MinGit이 번들되어 있어 별도 설치 없이 커밋·푸시가 가능합니다.

Q. AI가 수정한 파일이 ChangeSet에 안 보입니다. AI가 내장 Edit/Write로 변경한 파일은 Blyck의 file_write 경로를 거치지 않아 history에 바로 기록되지 않습니다. 그러나 git이 변경을 인식하므로 변경 탭의 미커밋 파일 목록에는 표시됩니다.

Q. DML을 잘못 실행했는데 되돌릴 수 있나요? 네. DML 실행 전 자동 백업(1층: 이력 DB, 2층: 대상 DB 백업 테이블)이 생성되므로, Ctrl+Shift+H → 해당 항목 → 되돌리기로 복원할 수 있습니다. WHERE 없는 UPDATE/DELETE도 복원됩니다.

Q. 되돌리기를 실수로 했으면 어떻게 하나요? 되돌리기 자체도 새 이력으로 기록됩니다. 다시 Ctrl+Shift+H에서 해당 “되돌리기” 항목을 되돌리면 원래 상태로 복구됩니다.

Q. 커밋 이력에서 특정 커밋을 취소하고 싶습니다. 커밋 이력 탭에서 해당 커밋 클릭 → [이 커밋 되돌리기] 버튼을 누르면 git revert가 실행됩니다. 히스토리가 보존되고 새 revert 커밋이 추가됩니다.

Q. SSH 명령은 왜 되돌리기가 안 되는 경우가 있나요? 역명령을 자동으로 추정할 수 있는 경우(mkdirrmdir 등)에만 자동 제시됩니다. 사이드 이펙트가 있는 명령은 수동으로 처리해야 합니다.

Q. GitHub device flow 로그인이 만료되었습니다. 명령 팔레트에서 “GitHub 로그인”을 다시 실행해 재인증하면 됩니다. 이후 push/pull은 다시 자동 처리됩니다.

Q. 이력 DB 파일이 너무 커졌습니다. %APPDATA%\Blyck\blyck-history.db는 2 GB 상한과 14일 자동 정리 정책으로 관리됩니다. 대용량 파일(1 MB 초과)은 기록에서 제외됩니다. 즉시 정리하려면 앱을 재시작하면 정리 루틴이 실행됩니다.