파일 추적하기
파일과 디렉터리를 동기화 대상으로 등록하는 방법
Devsync가 파일을 동기화하려면 먼저 추적 등록을 해야 해요. 추적은 경로를 manifest.json에 등록해서 push와 pull 시에 포함되도록 하는 과정이에요.
단일 파일 추적
섹션 제목: “단일 파일 추적”devsync track ~/.gitconfigdevsync track ~/.zshrc추적 등록 후 devsync push를 실행하면 파일이 sync 저장소에 미러링돼요.
디렉터리 추적
섹션 제목: “디렉터리 추적”디렉터리 전체를 추적할 수도 있어요. 그 안의 모든 파일이 재귀적으로 push와 pull에 포함돼요.
devsync track ~/.config/nvimdevsync track ~/.config/fish여러 경로 한 번에 추적
섹션 제목: “여러 경로 한 번에 추적”한 번의 명령으로 여러 경로를 전달할 수 있어요.
devsync track ~/.gitconfig ~/.zshrc ~/.config/nvim같은 명령에 포함된 모든 항목은 동일한 모드와 프로파일 옵션으로 등록돼요.
모드를 지정해서 추적
섹션 제목: “모드를 지정해서 추적”기본적으로 파일은 normal 모드로 추적돼요. 다른 모드를 사용하려면 --mode 옵션을 써요.
devsync track ~/.ssh/config --mode secretdevsync track ~/.config/local-only --mode ignore각 모드에 대한 자세한 설명은 동기화 모드를 참고해요.
프로파일을 지정해서 추적
섹션 제목: “프로파일을 지정해서 추적”특정 프로파일에 파일을 지정하려면 --profile 옵션을 써요.
devsync track ~/.config/work-tool --profile workdevsync track ~/.config/nvim --profile work --profile personal프로파일 지정이 없는 항목은 활성 프로파일에 관계없이 항상 push와 pull에 포함돼요.
자세한 내용은 프로파일을 참고해요.
저장소에서의 미러 구조
섹션 제목: “저장소에서의 미러 구조”devsync push를 실행하면 추적된 파일들이 홈 디렉터리를 기준으로 한 상대 경로 구조를 그대로 유지하면서 sync 디렉터리에 복사돼요.
예를 들면:
| 로컬 경로 | 저장소 경로 |
|---|---|
~/.gitconfig | sync/default/.gitconfig |
~/.config/nvim/init.lua | sync/default/.config/nvim/init.lua |
~/.ssh/config (secret) | sync/default/.ssh/config.devsync.secret |
default 부분은 프로파일 네임스페이스예요. work 프로파일에 지정된 항목은 sync/work/ 아래에 저장돼요.
디렉터리~/.config/devsync/sync/
- manifest.json
디렉터리default/
- .gitconfig
- .zshrc
디렉터리.config/
디렉터리nvim/
- init.lua
디렉터리.ssh/
- config.devsync.secret
디렉터리work/
디렉터리.config/
디렉터리work-tool/
- settings.json
추적 해제
섹션 제목: “추적 해제”파일 추적을 중단하려면 devsync untrack을 사용해요.
devsync untrack ~/.gitconfig이 명령은 manifest.json에서 항목을 제거해요. 로컬 파일이나 sync 저장소의 기존 파일은 삭제되지 않아요. 직접 제거하려면 devsync cd로 sync 저장소에 들어가서 수동으로 삭제하면 돼요.
추적 상태 확인
섹션 제목: “추적 상태 확인”devsync status를 사용하면 추적된 모든 항목의 현재 상태를 확인할 수 있어요 — 마지막 push 이후 무엇이 변경됐는지, 새로 생긴 것은 무엇인지, 삭제된 것은 무엇인지 볼 수 있어요.
devsync status--dry-run 옵션을 사용하면 실제로 적용하지 않고 어떤 내용이 쓰여질지 미리 확인할 수 있어요.
devsync push --dry-rundevsync pull --dry-run