Files
codex/codex-rs/git-utils/README.md
Ahmed Ibrahim 88b0816881 Move git utilities into a dedicated crate
Create codex-git-utils, move the existing git helpers into it, and migrate the GitInfo helpers out of core so rollout can depend on the shared crate without keeping its own git info module.

Co-authored-by: Codex <noreply@openai.com>
2026-03-24 14:56:42 +00:00

34 lines
911 B
Markdown

# codex-git-utils
Helpers for interacting with git, including patch application and worktree
snapshot utilities.
```rust,no_run
use std::path::Path;
use codex_git_utils::{
apply_git_patch, create_ghost_commit, restore_ghost_commit, ApplyGitRequest,
CreateGhostCommitOptions,
};
let repo = Path::new("/path/to/repo");
// Apply a patch (omitted here) to the repository.
let request = ApplyGitRequest {
cwd: repo.to_path_buf(),
diff: String::from("...diff contents..."),
revert: false,
preflight: false,
};
let result = apply_git_patch(&request)?;
// Capture the current working tree as an unreferenced commit.
let ghost = create_ghost_commit(&CreateGhostCommitOptions::new(repo))?;
// Later, undo back to that state.
restore_ghost_commit(repo, &ghost)?;
```
Pass a custom message with `.message("…")` or force-include ignored files with
`.force_include(["ignored.log".into()])`.