## Summary Introduces a “ghost commit” workflow that snapshots the tree without touching refs. 1. git commit-tree writes an unreferenced commit object from the current index, optionally pointing to the current HEAD as its parent. 2. We then stash that commit id and use git restore --source <ghost> to roll the worktree (and index) back to the recorded snapshot later on. ## Details - Ghost commits live only as loose objects—we never update branches or tags—so the repo history stays untouched while still giving us a full tree snapshot. - Force-included paths let us stage otherwise ignored files before capturing the tree. - Restoration rehydrates both tracked and force-included files while leaving untracked/ignored files alone.
21 lines
297 B
TOML
21 lines
297 B
TOML
[package]
|
|
name = "codex-git-tooling"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
readme = "README.md"
|
|
|
|
[lib]
|
|
name = "codex_git_tooling"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies]
|
|
tempfile = "3"
|
|
thiserror = "2"
|
|
walkdir = "2"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dev-dependencies]
|
|
pretty_assertions = "1.4.1"
|