mise dotfiles pull
- Usage:
mise dotfiles pull [FLAGS] - Effect: destructive — may delete or irreversibly overwrite
- Source code:
src/cli/dotfiles/pull.rs
Write fetched changes from other machines to tracked files
Writes the changes that the last mise dot sync fetched from your other machines. (mise dot apply deploys your own [dotfiles] entries; pull writes what other machines pushed.) pull restores tracked paths, including tracked symlinks, but never deploys copy, symlink, or template entries: when a tracked file is the source of one, pull updates the source, and mise dot apply then writes the target your application reads. mise saves a checkpoint first, so mise dot undo reverses the whole pull, and runs the matching [history.reload] commands after writing.
A pull applies every incoming change together, including config files and the files they reference; it does not take paths. Nothing is written if an incoming config file does not parse, a file has unsaved local edits, your own checkout has staged Git changes, or a file changed on both sides. A file that changed on both sides is a conflict: compare the two versions with mise dot conflicts, then resolve it with --take-remote or --keep-local, or resolve every conflict with --take-remote-all or --keep-local-all. While any conflict remains, pushing and applying stop for all tracked files; local history and fetching continue.
In sync mode the watcher pulls on its own when there are no conflicts. When incoming config declares more tracked files, their versions from the origin are written in the same pull.
Flags
-n --dry-run— Show the plan without changing anything-y --yes— Accepted for compatibility; pull skips the apply confirmation--take-remote <PATH>— Resolve a conflict with the origin's version--keep-local <PATH>— Resolve a conflict by keeping this machine's version; the next sync pushes it--take-remote-all— Resolve every remaining conflict with the origin's versionPaths named by
--keep-localkeep this machine's version; every other conflict takes the origin's. Use it on a newly connected machine, where each existing file that differs is a separate conflict.--keep-local-all— Resolve every remaining conflict by keeping this machine's versionPaths named by
--take-remotetake the origin's version; every other conflict keeps this machine's. Each kept path must already be saved.-h --help— Print help
Examples
Show what would be written
mise dot pull --dry-runResolve a conflict with the origin's version
mise dot pull --take-remote ~/.zshrcResolve a conflict by keeping this machine's version
mise dot pull --keep-local ~/.zshrcTake the origin's version of every conflict except one
mise dot pull --take-remote-all --keep-local ~/.zshrc