MarkNode에는 Git 지원이 내장되어 있어 에디터를 벗어나지 않고도 변경 사항을 추적하고, 커밋하고, 원격 저장소와 동기화할 수 있습니다.
저장소 자동 감지
폴더를 프로젝트로 열면 MarkNode가 해당 폴더에 Git 저장소가 있는지 확인합니다. 저장소가 발견되면 Git 기능이 자동으로 활성화되며, 별도의 설정은 필요하지 않습니다. 폴더가 Git 저장소가 아닌 경우 Git 기능은 표시되지 않습니다.
상태 표시줄
창 하단의 상태 표시줄에는 현재 Git 컨텍스트가 한눈에 표시됩니다:
- 브랜치 이름 — 현재 체크아웃된 브랜치
- 변경 개수 — 수정, 추가 또는 삭제된 파일의 개수입니다. 이 개수는 클릭할 수 있으며, 클릭하면 소스 제어 패널이 열립니다.
브랜치 표시기는 실시간으로 업데이트됩니다. 터미널이나 다른 도구에서 브랜치를 전환하더라도 다시 불러올 필요 없이 상태 표시줄에 변경 사항이 반영됩니다. 앞서거나 뒤처진 커밋 수와 모든 Git 작업은 아래에 설명된 소스 제어 패널을 사용하세요.
소스 제어 패널
모든 Git 작업은 소스 제어 패널에 있습니다. 이는 VS Code와 같은 에디터에서 익숙한 소스 제어 패턴을 본떠 만든 사이드바 뷰입니다. 내비게이션 바의 소스 제어 아이콘(최근 파일 다음에 표시되며, 프로젝트가 Git 저장소일 때만 나타납니다)에서 열거나, macOS에서는 Cmd+Shift+K, Windows와 Linux에서는 Ctrl+Shift+K를 누르세요.
이 패널은 모달 대화 상자가 에디터를 가리지 않으면서 모든 것을 한곳에서 제공합니다:
- 헤더 — 현재 브랜치 이름과 원격 저장소 대비 앞선/뒤처진 커밋 수
- 변경된 파일 — 스테이징된 변경 사항과 변경 사항(스테이징되지 않음)으로 분류되며, 각 항목에는 파일 이름, 경로, 상태 문자가 표시됩니다
- 인라인 작업 — 파일 위에 마우스를 올려 스테이징하거나 스테이징을 해제할 수 있습니다. 변경 사항 헤더에는 모두 스테이징 작업이, 스테이징된 변경 사항 헤더에는 모두 스테이징 해제 작업이 있습니다
- 커밋 영역 — 메시지 입력란과 커밋 버튼으로, 파일을 스테이징하고 메시지를 작성하면 활성화됩니다
- 툴바 — 풀, 푸시, 새로 고침 작업
파일 상태 표시
파일 탐색기는 각 파일 이름에 색상을 입혀 Git 상태를 나타냅니다:
| 상태 | 의미 |
|---|---|
| 수정됨 | 파일에 아직 커밋되지 않은 변경 사항이 있습니다 |
| 추가됨 | 스테이징된 새 파일입니다 |
| 추적되지 않음 | 아직 스테이징되지 않은 새 파일입니다 |
| 삭제됨 | 추적 중이던 파일이 제거되었습니다 |
| 이름 변경됨 | 추적 중이던 파일이 이동되거나 이름이 변경되었습니다 |
| 충돌 | 파일에 해결해야 할 병합 충돌이 있습니다 |
상태는 폴더 트리를 따라 위쪽으로 전파됩니다 — 폴더 안의 파일 중 하나라도 변경 사항이 있으면 상위 폴더 이름에도 색상이 적용됩니다(우선순위가 가장 높은 상태를 따릅니다). 덕분에 모든 디렉터리를 펼쳐보지 않고도 프로젝트에서 변경된 부분을 파악할 수 있습니다.
변경 사항 커밋하기
커밋은 소스 제어 패널에서 인라인으로 이루어지며, 별도의 대화 상자는 없습니다:
- 포함하려는 파일 위에 마우스를 올려 스테이징 작업을 클릭하거나, 섹션 헤더의 모두 스테이징을 사용해 파일을 스테이징합니다.
- 메시지 입력란에 커밋 메시지를 작성합니다.
- 커밋을 클릭합니다.
MarkNode는 로컬 저장소에 커밋을 실행하고, 메시지 입력란을 비우며, 파일 목록과 상태 표시줄의 변경 개수를 업데이트합니다. 커밋이 실패하면 — 예를 들어 pre-commit 훅이 거부하는 경우 — 패널에 오류가 표시되고 커밋 메시지는 그대로 유지되어 다시 시도할 수 있습니다.
풀과 푸시
푸시와 풀 작업은 소스 제어 패널 툴바에 있습니다.
- 풀은 원격 저장소에서 최신 커밋을 가져와 현재 브랜치에 병합합니다
- 푸시는 로컬 커밋을 원격 저장소로 보냅니다
푸시가 거부되면(예를 들어 원격 저장소에 로컬에 없는 커밋이 있는 경우), 먼저 풀을 실행하고 충돌을 해결한 뒤 다시 푸시해야 합니다.
MarkNode 외부에서 변경된 파일
터미널이나 다른 에디터에서 파일을 수정하면 MarkNode가 변경 사항을 감지하고 해당 파일을 자동으로 다시 불러옵니다. 에디터나 파일 탐색기를 수동으로 새로 고칠 필요가 없습니다.
이는 Git 작업에도 적용됩니다. git checkout, git merge 등 작업 트리의 파일을 수정하는 모든 명령의 결과가 에디터에 즉시 반영됩니다.