Git, GitHub 그리고 클라우드
Git은 로컬입니다. 내 컴퓨터에서 실행되는 무료 프로그램으로, 버전 기록을 폴더 안의 숨김 폴더 .git에 저장합니다. 버전 관리를 켜도 인터넷으로 아무것도 보내지 않으며 계정도 필요 없습니다. 버전은 이 컴퓨터에만 있습니다. 디스크가 고장 나거나 컴퓨터를 잃어버리면 버전도 함께 사라집니다.
GitHub는 다른 것으로, 클라우드 서비스입니다. 저장소의 사본을 보관합니다. 동기화할 때 LightNote가 버전을 보내는 곳이 GitHub나 비슷한 서비스입니다. 이 사본이 다른 곳에 있으면 백업이 되고, 같은 노트를 다른 컴퓨터에서도 쓸 수 있습니다. 한쪽에서 보내고 다른 쪽에서 받는 방식입니다. GitHub는 개인 용도로 무료이며, 나만 볼 수 있는 비공개 저장소를 무제한으로 만들 수 있습니다.
정리하면, Git은 내 컴퓨터에 있는 버전이고, 원격은 다른 곳에 있는 그 사본입니다. 원격으로는 GitHub, 다른 서비스, OneDrive나 Google Drive 폴더, 자체 서버를 쓸 수 있습니다. 폴더에 원격이 없는 동안 버전 관리 패널에는 버전이 이 컴퓨터에만 있습니다.라는 문구와 아래에서 설명하는 백업 및 동기화… 링크가 표시됩니다.
저장소 복제
이미 있는 저장소에서 작업하려면 파일 → Git 저장소 복제...를 사용하세요. 이 항목은 시작 화면과, 아직 저장소가 아닌 폴더의 버전 관리 패널에도 있습니다. 저장소 페이지에 표시된 HTTPS 또는 SSH 주소를 붙여 넣으세요. 페이지 자체의 URL도 되고, git clone ... 명령을 통째로 복사한 것도 됩니다. 상위 폴더와 폴더 이름을 고르면 어디에 만들어질지 보여 주고, 그 자리에 이미 무언가 있으면 알려 줍니다. 고급 옵션에는 브랜치, 얕은 복제(마지막 커밋만), 하위 모듈이 있습니다.
서버가 로그인을 요구하면 LightNote가 창으로 묻습니다. 사용자 이름과 토큰, SSH 키 암호, 또는 이 컴퓨터가 한 번도 본 적 없는 서버 키에 대한 확인입니다. 마지막 경우에는 지문과 서비스가 공개한 목록으로 가는 링크가 함께 표시되며, 기본값은 신뢰하지 않음입니다. 답변은 Git으로 바로 전달되고 LightNote는 저장하지 않습니다. 저장하는 쪽은 Git의 자격 증명 관리자이며, 설치되어 있을 때만 그렇습니다(Git for Windows에는 Git Credential Manager가 들어 있습니다). 키를 신뢰하면 ssh가 하는 것과 똑같이 ~/.ssh/known_hosts에 기록됩니다.
복제가 실패하면 화면이 무슨 일이 있었는지 알려 주고 해결책을 제시합니다. SSH 키가 거부되면 HTTPS로 시도하기, 회사 프록시가 HTTPS를 검사하면 Windows 인증서 사용하기, 도중에 연결이 끊기면 마지막 커밋만 내려받기, Windows가 파일을 만들지 못하면 긴 경로 사용하기 같은 것입니다. 기술 정보에는 Git의 메시지가 담기고, 알아보지 못한 내용은 AI에 물어볼 수 있습니다. 끝나면 복제된 폴더를 이 창이나 새 창에서 엽니다.
열린 폴더 버전 관리
버전 관리는 작업 공간별 선택 사항입니다. 도구 → 작업 공간 → 작업 공간 설정...에서 활성화하면 LightNote가 Git 저장소를 (아직 없다면) 생성하고 버전 관리 사이드바(Ctrl+Shift+G)를 표시합니다.
자동 모드에서는 일반 설정에서 선택한 시점(저장 시, 탭 닫을 때, 창 닫을 때)에 LightNote가 스스로 버전(커밋)을 저장합니다. 세션 중 커밋에는 LightNote가 기록한 것만 들어갑니다. AI CLI나 다른 프로그램이 바꾼 것은 보류로 남아, 바꾼 쪽이 직접 커밋합니다. Ctrl+S는 바로 버전을 저장하고, 자동 저장이 기록한 내용은 10분마다 커밋됩니다. 창을 닫을 때(기본값 켜짐)의 커밋은 LightNote 밖에서 바뀐 것까지 폴더에서 바뀐 모든 것을 담습니다. 세션 끝의 안전망입니다. 수동 모드에서는 메시지를 작성하고 패널에서 버전을 저장합니다. 상태 표시줄 표시기는 상태(변경 없음, X개 변경됨 등)를 보여주며 클릭하면 Git 메뉴가 열립니다(아래 참고). 아직 버전 관리를 하지 않는 폴더에서는 작업 공간 설정이 통합 페이지로 열립니다. 각 파일의 diff를 보고 저장하지 않은 변경 사항을 복원(취소)할 수 있습니다.
자동화에는 폴더별로 3단계가 있습니다(작업 공간 설정에서): 수동(자동화 없음), 자동 커밋(스스로 버전을 저장하지만 동기화는 하지 않음), 완전 자동(커밋 그리고 동기화 — 커밋 후 푸시 + 주기적 풀; 프롬프트 없는 Git 자격 증명 필요)입니다. 패널에는 원격 저장소 대비 ↑ 보낼 항목 / ↓ 받을 항목을 보여주는 상태 줄이 있으며, 보낼 버전이 있을 때 메인 버튼이 커밋에서 동기화로 바뀌어 저장 후에도 동기화가 필요함을 알려줍니다.
Git 패널과 트리의 Git 메뉴에는 파일별 추가(git add)와 복원(git restore), 그리고 비교 화면을 여는 바뀐 내용 보기 하나가 있습니다. 패널 목록은 경로의 자연 순서를 따르고, 파일의 컨텍스트 메뉴에는 복사...와 탐색기에 표시(삭제된 파일에서는 비활성화)도 있습니다.
비교 화면은 두 버전을 나란히 정렬해 보여 줍니다. 같은 부분은 언제나 서로 마주 보고, 각 쪽에는 그 파일의 줄 번호가 표시됩니다. 바뀐 줄은 호박색으로 나타나며 줄 안에서 달라진 부분이 강조됩니다. 통합 보기 단추는 패치 형식으로 전환하고, 좌우 바꾸기는 비교 기준을 바꾸며, F8 / Shift+F8은 변경 지점을 차례로 이동합니다.
상태 표시줄의 Git 메뉴. 버전 관리를 하는 폴더에서 표시기는 브랜치와, 그 옆에 아직 동기화할 것(↓ 받을 항목, ↑ 보낼 항목)을 보여줍니다. 점은 모두 버전으로 저장되어 있으면 초록색, 보류 중인 변경이 있으면 호박색, 충돌한 파일이 있으면 빨간색입니다. 클릭하면 전체 상태로 시작하는 메뉴가 열리며, 전체를 버전으로 저장(커밋)…(다른 프로그램이 만든 변경까지 폴더의 모든 변경을 담습니다. 메시지를 비워 두면 자동으로 만들어집니다), Git 패널 열기, 그리고 원격 저장소가 있으면 동기화(받기 및 보내기), 받기(병합으로 pull), 보내기(push), 원격 확인(fetch)을 제공합니다. 받기는 항상 병합(merge)하며, 컴퓨터의 Git 설정과 관계없이 리베이스하지 않습니다. 병합에서 충돌이 나면 보내기는 일어나지 않고 메뉴에 충돌한 병합 취소…가 나타납니다. 자동 작업에서는 설정을 열지 않고 폴더의 자동화 수준을 바꿀 수 있습니다. 고급의 git 명령 실행…은 저장소 폴더에서 아무 명령이나 실행하고 출력을 보여줍니다. 터미널이 없으므로 입력을 요구하는 명령(메시지 편집기, 콘솔의 비밀번호)은 기다리지 않고 포기합니다. 그런 명령은 터미널을 사용하세요. Git이 설치되어 있지 않으면 클릭할 때 설치 안내가 열립니다.
이동과 이름 바꾸기. LightNote에서 파일이나 폴더를 옮기거나 이름을 바꾸면 (트리에서 끌기, 잘라내기와 붙여넣기, 이름 바꾸기) 버전에 원래 위치와 새 위치가 함께 기록되고, Git은 이를 이름 바꾸기로 남깁니다. 이미 버전 관리되던 것만 들어가며, 옮긴 폴더 안의 새 파일은 다른 파일처럼 기다립니다. Ctrl+S와 같은 규칙이라, 저장 시 커밋이 꺼져 있으면 다음 커밋을 기다립니다. 큰 파일은 들어가지 않습니다. 큰 파일과 서비스의 제한을 참고하세요.
기록과 변경 표시줄
코드 편집기와 노트 도구 모음에는 파일 버전을 위한 단추가 두 개 있습니다. 버전 저장은 파일을 기록하고 이 버전을 남깁니다. Git으로 버전 관리되는 폴더에서는 이 파일만 커밋하고(다른 프로그램이나 AI 세션이 다른 파일에서 바꾼 내용은 빠집니다), 저장소 밖에서는 로컬 기록에 한 지점을 남깁니다. 마지막 버전 이후 바뀐 것이 없으면 회색이 되고, 이유는 도구 설명에 나옵니다.
버전은 열려 있는 파일의 버전 목록을 열고(사이드바의 같은 섹션입니다), 화살표에는 메시지와 함께 버전 저장…, 마지막 버전 이후 바뀐 내용 보기, 마지막 버전 이후 변경 사항 취소…가 있습니다. 마지막 항목은 Git이 있든 없든 파일을 마지막 버전으로 되돌리며, 취소한 텍스트는 로컬 기록에 남고 Ctrl+Z로도 되돌릴 수 있습니다. 목록에는 커밋과 로컬 저장이 함께 모입니다. LightNote는 Ctrl+S마다 하나를, 자동 저장에서는 파일마다 최대 10분에 하나를 기록하고 첫 기록 전의 파일도 남기므로 저장소가 아닌 폴더에서도 쓸 수 있습니다. 각 줄에는 제목, 작성자, 시점, 늘고 준 줄 수가 나오고, 점으로 내 커밋과 LightNote 자체의 저장, AI 세션에서 온 커밋을 구분합니다. 커밋하지 않은 변경이 있으면 그것이 첫 줄입니다. 버전을 클릭하면 그 버전에서 바뀐 내용이 나옵니다. 전체 버전 열기, 현재 버전과 비교, 선택한 두 버전 비교는 오른쪽 클릭에 있습니다.
여백의 색 띠가 마지막 버전 이후 바뀐 줄을 표시합니다 — 코드 편집기뿐 아니라 노트에서도 그렇습니다. 띠는 입력을 따라 갱신되어, 원래대로 되돌리면 저장을 기다리지 않고 사라집니다. 마지막 버전은 파일을 연 시점의 마지막 커밋입니다(Git이 없으면 열었을 때의 파일). 저장이나 자동 커밋으로는 바뀌지 않으며, 버전 저장을 클릭하거나 탭을 닫을 때까지 표시가 남습니다. 끄려면 보기 → 변경 띠를 쓰세요. 끄면 감춰지는 것이 아니라 계산 자체를 하지 않습니다. 띠를 클릭하면 그 부분이 어땠는지 보이고, 이 부분 되돌리기(Ctrl+Z로 취소), 원본 복사, 그리고 그 줄에 맞춰 전체 비교를 여는 차이에서 보기를 쓸 수 있습니다. 열려 있는 파일이 LightNote 밖에서 바뀌면(예: AI CLI가 파일에 기록할 때), 저장하지 않은 편집이 없는 탭은 조용히 다시 불러오고 띠가 바뀐 내용을 보여 줍니다. 내 편집이 다른 곳에 있으면 둘을 병합합니다(Ctrl+Z로 되돌리기). 둘이 같은 줄을 바꿨다면 탭 위쪽의 노란 막대에 비교, 디스크 버전 사용, 내 버전 유지가 나옵니다. 선택할 때까지 자동 저장은 그 파일을 기록하지 않으며, 버려지는 버전은 로컬 기록에 남습니다. 로컬 기록에 관한 한 가지: 경로별로 보관되므로 파일 이름을 바꾸면 그 파일의 로컬 저장은 사라집니다. Git 커밋은 사라지지 않습니다.
줄 작성자와 브랜치 전환
이 줄을 쓴 사람. 상태 표시줄 Git 메뉴의 줄 작성자(blame)를 켜면, 커서가 있는 줄 끝에 누가, 언제 썼는지와 버전의 요약이 나옵니다(예: Ana · 3일 전 · 합계 수정). 작성자 정보는 커서가 있는 줄에만 붙고 커서를 따라 움직입니다. 아직 어떤 버전에도 들어가지 않은 줄에는 버전 관리 안 됨이 표시됩니다. 저장하지 않은 변경이 있으면 디스크의 파일 줄이 화면의 줄과 맞지 않으므로 저장하면 작성자를 볼 수 있습니다라고 표시됩니다.
브랜치 전환. 같은 메뉴의 하위 메뉴 브랜치: main(현재 브랜치 이름)에 로컬 브랜치가 나열됩니다. 현재 브랜치에는 확인 표시가 있고, 다른 브랜치를 클릭하면 그 브랜치로 전환됩니다(git checkout). 브랜치 만들기…는 이름을 묻고, Git을 부르기 전에 확인한 뒤(공백, .., 맨 앞의 -는 쓸 수 없음) 현재 브랜치에서 새 브랜치를 만들어 바로 그 브랜치에서 작업합니다. 충돌한 파일이 있거나 동기화가 진행 중일 때는 전환할 수 없습니다.
백업 및 동기화: GitHub 단계별 안내
패널의 백업 및 동기화… 링크(패널의 ⋯ 메뉴와 상태 표시줄 Git 메뉴에 있는 원격 저장소 추가…와 같은 기능)는 백업 및 동기화 화면을 엽니다. 방법은 세 가지입니다. 권장하는 GitHub, 다른 서비스, 그리고 동기화 폴더(OneDrive, Google Drive, Dropbox, USB 드라이브, 네트워크 폴더)입니다. 모두 쓸 수 있지만, 여러 컴퓨터에서 노트를 쓰기에는 GitHub가 가장 간단하고 백업으로도 가장 안전합니다. GitHub의 경우:
- github.com/signup에서 계정을 만듭니다. 이메일, 비밀번호, 사용자 이름을 입력하면 GitHub가 이메일 확인 코드를 보냅니다. Free 요금제면 충분합니다.
- github.com/new에서 저장소를 만듭니다. 이름을 정하고(예:
notes) Private를 선택한 뒤, Add a README, .gitignore, 라이선스는 선택하지 않습니다. 저장소는 비어 있어야 합니다. README가 있으면 GitHub에 내 것이 아닌 기록이 생겨 첫 보내기가 거부됩니다. - 페이지에 표시된 HTTPS 주소(
https://github.com/사용자/notes.git같은 형태)를 복사해 LightNote 화면의 저장소 주소에 붙여 넣습니다. 지금 버전 보내기를 선택한 채로 두고 연결을 클릭합니다. - 로그인합니다. 첫 보내기 때 Git이 GitHub 창을 열면 브라우저에서 승인합니다. 그 뒤로는 Windows가 접근 권한을 저장하므로(저장하는 것은 Git for Windows에 포함된 Git Credential Manager) 다시 로그인할 필요가 없습니다.
- 다른 컴퓨터에서는 Git과 LightNote를 설치하고 같은 주소로 파일 → Git 저장소 복제...를 사용합니다. 그 뒤로는 동기화가 다른 컴퓨터에서 보낸 것을 받고 여기서 한 작업을 보냅니다.
동기화를 잊지 않으려면 폴더 설정에서 완전 자동을 선택하세요. LightNote가 커밋할 때마다 보내고 주기적으로 받습니다. 알아 둘 제한이 두 가지 있습니다. GitHub는 100MB가 넘는 파일을 거부하며, 저장소는 약 1GB 이하를 권장합니다. 동영상과 큰 파일은 버전 관리 폴더 밖에 두세요. 또한 비공개는 나(와 초대한 사람)만 저장소를 볼 수 있다는 뜻이지만, 내용 자체는 GitHub 서버에 있습니다. 기밀 내용에는 컴퓨터를 떠나기 전에 암호화되는 보안 Markdown을 쓰세요.
휴대폰에서. 원격 저장소를 연결하면 휴대폰에서 열기…(패널의 ⋯ 메뉴와 상태 표시줄의 Git 메뉴)가 QR 코드를 보여 줍니다. 휴대폰의 LightNote에서 작업 공간 이름을 누르고 컴퓨터의 QR 코드 스캔을 선택하면 저장소가 휴대폰의 새 작업 공간이 됩니다. QR에는 주소만 들어 있고 암호는 절대 들어 있지 않습니다. 비공개 저장소라면 휴대폰은 해당 서버의 Git 계정을 사용하거나 액세스 토큰을 요청합니다. 휴대폰은 HTTPS로 복제하므로, 이 컴퓨터의 폴더인 원격 저장소(아래의 OneDrive)에는 닿지 않습니다.
큰 파일과 서비스의 제한
제한. GitHub는 파일 하나가 50MB를 넘으면 경고하고 100MB를 넘는 파일은 거부합니다. GitLab, Bitbucket, Azure Repos도 100MB를 넘는 파일을 거부합니다. 저장소 전체로는 GitHub가 약 1GB까지 (최대 5GB) 권장하며, Bitbucket 무료 플랜은 1GB를 제공합니다. 동기화 폴더 (OneDrive, Google Drive)에는 이 상한이 없습니다.
커밋할 때 주의하는 이유. 제한은 오늘의 파일만이 아니라 기록의 모든 버전에 적용됩니다. 120MB 파일이 한 번 버전에 들어가면 전송이 거부되고, 파일을 삭제해도 예전 버전에 여전히 들어 있으므로 계속 거부됩니다.
LightNote의 동작. 100MB를 넘는 파일은 앱이 저장하는 어떤 버전에도 들어가지 않습니다 (자동 커밋, Ctrl+S, 버전 저장, 창을 닫을 때의 커밋, 스냅샷, 휴대폰 동기화). 파일은 폴더에 그대로 있고, 알림에서 Git에서 무시 (.gitignore)를 고를 수 있습니다. 50MB를 넘는 파일은 상태 표시줄의 경고와 함께 들어갑니다. Git LFS 대상 파일 (저장소에는 포인터만 저장)은 막지 않습니다.
전송이 이미 거부되었다면 (LightNote 밖의 터미널에서 버전을 저장한 경우) Git 패널이 알려 줍니다. 파일을 삭제해도 해결되지 않습니다. 아직 보내지 않은 버전이면 상태 표시줄 Git 메뉴의 고급 → git 명령 실행…에서 reset @{u}를 실행하세요. 보내지 않은 버전이 취소되고 파일은 그대로 남습니다. 큰 파일을 .gitignore에 넣고 버전을 다시 저장하세요. 파일을 저장소에 두려면 Git LFS (git-lfs.com)를 사용하세요.
다른 서비스, OneDrive/Google Drive, 자체 서버
다른 서비스. Git은 어떤 서비스에서도 똑같이 동작하며, 저장소를 만드는 곳만 달라집니다. 잘 알려진 서비스는 GitLab(gitlab.com, 무료, 비공개 저장소당 최대 10GB), Bitbucket(bitbucket.org, 사용자 5명까지 무료, 전체 1GB), Azure DevOps(dev.azure.com, Microsoft, 사용자 5명까지 무료, 비공개 저장소 무제한), Codeberg(codeberg.org, 비영리이지만 오픈 소스 프로젝트 전용이라 개인 노트에는 맞지 않음)입니다. 그곳에서 비어 있는 비공개 저장소를 만들고 주소를 복사한 다음, 백업 및 동기화 화면에서 다른 서비스를 선택하세요. 요금제 제한은 바뀔 수 있으니 각 서비스 사이트에서 확인하세요.
OneDrive, Google Drive, Dropbox는 새 계정이 필요 없습니다. 동기화 폴더를 선택하고 이 컴퓨터에 있는 서비스 폴더(예: C:\Users\사용자\OneDrive 또는 G:\내 드라이브)를 지정합니다. LightNote가 그 안에 베어 저장소(작업 파일 없이 버전만 보관하는 Notes.git 폴더)를 만들어 원격으로 사용합니다. 이 폴더를 복사하는 일은 클라우드 서비스가 맡습니다. 다른 컴퓨터에서는 폴더가 동기화되어 나타날 때까지 기다린 뒤, 그 경로를 붙여 넣어 파일 → Git 저장소 복제...를 사용합니다. 같은 방법을 백업용 USB 드라이브나 네트워크 폴더에도 쓸 수 있습니다.
- 노트 폴더 전체를 OneDrive에 넣지 않고 베어 저장소를 쓰는 이유는? 작업하는 동안
.git폴더는 계속 바뀌며, 두 컴퓨터가 이를 클라우드로 동기화하면 손상될 수 있습니다. 베어 저장소에는 보내기만 기록하고, 기록한 내용은 나중에 바뀌지 않습니다. - 한 번에 한 컴퓨터만. 다른 컴퓨터에서 작업하기 전에 OneDrive나 Drive의 동기화가 끝나기를 기다리세요. 그 전에 양쪽에서 보내면 충돌 사본이 생길 수 있습니다. 이런 일이 자주 생긴다면 GitHub가 더 편합니다.
- 작업 폴더가 이미 클라우드에 있으면(Windows는 문서 폴더를 OneDrive에 두는 경우가 많습니다) 화면에서 경고합니다. 컴퓨터가 한 대뿐이라면 OneDrive가 백업 역할을 합니다. 여러 대에서 노트를 쓰려면 GitHub를 쓰거나, 노트 폴더를 클라우드 밖으로 옮기고 클라우드에는 베어 저장소만 두세요.
- Git 없이도 됩니다. 노트 폴더 전체를 클라우드 서비스로 동기화하고 버전 관리는 끈 채로 두세요. 로컬 기록이 각 파일의 버전을 계속 저장합니다. 휴대폰에서 노트 사용하기에서 소개하는 방법입니다.
자체 서버. 어떤 회사에도 의존하지 않으려면 직접 Git 서버를 운영할 수 있습니다. Gitea와 Forgejo는 가볍고, GitHub와 비슷한 웹 화면을 갖추고 있으며, Docker에서 실행됩니다. 집에 있는 컴퓨터, Raspberry Pi, NAS, 임대한 VPS 어디에나 둘 수 있습니다. 가장 간단한 방법은 SSH를 쓰는 서버에 git init --bare로 저장소를 만드는 것입니다. 대신 서버를 설치하고 업데이트하고 백업하는 일은 직접 해야 합니다. 설치 안내는 각 프로젝트 사이트에 있습니다. 서버가 준비되면 저장소 주소를 다른 주소와 마찬가지로 다른 서비스에 입력합니다.
목차
편집
- 개요
- 시작하기
- 작업 공간과 창
- 활동 센터: 작업과 메시지
- 코드 편집기
- Markdown과 위키링크
- 다이어그램(Mermaid)
- 수식과 화학(LaTeX)
- 노트 안의 달력
- 번호 매기기와 상호 참조
- 인용과 참고문헌
- 학술 논문 규격
- 연결 그래프
- 표(Parquet, CSV, JSON, Excel)
- 분석 영역: 피벗 테이블과 여러 차트
- PDF와 이미지
- 이미지: 스크린샷에 주석 달기
- HTML 페이지(.html)
- 인쇄
- 폴더처럼 열리는 Zip(.zip)
- 블록(.lnb)
- 작업(칸반 / 간트)
- 사용자 지정 표(.lnd)
- 베이스(노트 저장 쿼리)
도구
- 파일 검색과 보류 중 패널
- 버전 관리(쉬운 Git)
- 스냅샷과 백업
- 변경 사항 검토(체크포인트)
- 파일 비교(diff)
- 코드 실행(F5)
- 터미널과 AI CLI
- 선택 영역에 대한 AI 어시스턴트(Ctrl+K / Ctrl+I)
- 내 컴퓨터의 AI
- AI 세션
- AI 채팅
- HTTP API 테스트(.lnh)
- 데이터베이스(.lnc)
- SSH 연결(.lns)
- 보안: 암호 문구, PIN, 보안 Markdown
- 일일 노트, 빠른 캡처, 트레이
- 오래된 노트 다시 찾기
- 휴대폰에서 노트 사용하기
- 오디오 녹음(음성·회의)과 AI 전사
- 스티커 메모
- 캘린더
- 명령 팔레트
자동화(AI / 스크립트)
참고