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

911 B

codex-git-utils

Helpers for interacting with git, including patch application and worktree snapshot utilities.

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()]).