Sync
Full dotfiles sync: commit, rebase, converge with just up, then push.
Steps
- •
Check for changes
bashgit status git diff
- •
Commit if changes exist
- •Analyze diff for distinct semantic changes
- •Make multiple commits if changes span different scopes/concerns
- •Use conventional commit format with scope from CLAUDE.md
- •Example: fish config change + claude settings change = 2 commits
- •
Rebase onto remote
bashgit pull --rebase
- •
Resolve conflicts if any
- •Read conflicted file, resolve intelligently, then:
bash
git add <file> git stash drop # if autostash conflict
- •Commit resolution if needed
- •Read conflicted file, resolve intelligently, then:
- •
Converge the machine
bashjust up
- •
Inspect post-converge drift
- •
just upcan capture intentional live config back into repo source - •Run
git statusagain - •If new intentional source changes appeared, commit them before pushing
- •
- •
Push the data and git remotes
bashbd dolt pull bd dolt push git push git status
- •
Relay sudo reminder if shown
- •If output shows
sudo ./scripts/sync-sudo.sh, tell the user exactly that
- •If output shows
What just up Does
just up:
- •refreshes the cached symlink manifest
- •runs the dotctl healer once
- •deploys symlinks and runs lifecycle scripts
- •Runs lifecycle scripts (brew bundle, node setup, macOS defaults, etc.)
- •installs or reloads the launchd healer
- •leaves read-only inspection to
just status,just doctor, andjust explain
./scripts/sync-sudo.sh (user runs manually, only if needed):
- •Power management (display sleep)
- •Touch ID for sudo
- •Fish as default shell (/etc/shells + chsh)
Troubleshooting
- •Machine health:
just status - •Deep drift check:
just doctor - •Explain one target:
just explain <target> - •Low-level diff:
dotctl status/just status - •Encrypted files:
just edit <target>