gritzko
GET exports git trees from repo into the worktree: clone, switch branch, detach, or restore in git's terms. The regular form does fast-forward/backward, maybe re-applying uncommitted changes. The forceful form resets the worktree to a chosen version, deleting all the untrackeds. The exact action is defined by the shape of the URI:
? is the trunk, see URI,?. is the current branch.//name for a worktree.be get...
(empty) bare: move the wt to cur's branch tip
?feat switch wt+cur to branch feat
?./fix enter a child branch (?../sib a sibling)
? switch to the trunk
?abc1234 detached checkout at a sha
#~1 rewind cur one commit, reset the wt
file.c restore one file from cur's baseline
file.c?feat get file.c from feat's tip
//ABC-123 checkout the rev worktree ABC-123 is on
ssh://host?feat fetch, then checkout
ssh://host/repo.git clone: fetch + checkout (recurses subs)
file:../proj?feat wire an empty cwd as a sibling worktree
?ref#sha to a tip sha,
get row (the new base branch + tip hash),
patch parents; cur is read back from it.The regular form can only do fast-forward or fast-backward, refuses otherwise. The local changes get carried over by weave merge. The forceful form be get! resets the worktree to a clean state, all local changes discarded. That can be any commit, not necessarily fast-forward or fast-backward.
gritzko, no LLM allowed
get is the most basic Beagle operation: get a specific revision of a repo and probably its nested submodules. Clone, checkout, update, switch, etc. The recentmost get defines which ref the tree tracks and what is its base commit (base commit can also be changed by post).
get comes in many forms:
get ?branch, get ?tag, specify the target ref in the local store (can use branch paths, incl relative, e.g. get ?../sibling_branch)get //worktree/path - worktree get (reads the base hash of that tree, tracks that tree afterwards, same-store op),get #hash - direct commit checkout, detaches the worktree;get #~1 - roll back one commit,get file:..., get https:..., get ssh:..., `getget can be
0. bootstrap clone, no local copy, creates wtlog and the checkout
1. normal, when dirty file changes get weaved into the new versions
2. get! forceful that discards local changes and untracked files, can go to any commit (not just ff/fb)
3. get file.c, get dir/ - current tip, narrowed to a specific path (recovers)
4. get! file.c narrowed forceful, resets a file/subdir
5. get //WORK/submod/path/file.c cherry-picking files from other refs (an optional feature)get submodule recursion rules:
--nosubget! forcefully: into every submodule, gets its pinned hash