{
  "slug": "git-history-adds-experimental-history-rewriting-and-split-210975246771",
  "title": "git history adds experimental history rewriting and split",
  "tools": [
    "git"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-04-20T02:01:58.000Z",
  "announced_at": "2026-04-20T02:01:58.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When you need to split a commit, run `git history split <commit>` and interactively choose hunks for a new parent commit; Git prompts for both commit messages. For rewriting a commit message, run `git history reword <commit>`.",
    "examples": [
      "git history split <commit>",
      "git history split <commit> [--dry-run] [--update-refs=(branches|head)] [--] [<pathspec>…]",
      "git history reword <commit> [--dry-run] [--update-refs=(branches|head)]"
    ],
    "gotchas": [
      "Version: 2.54.0",
      "Availability: experimental",
      "<commit> (required): Commit to split or reword.",
      "--dry-run: Print reference updates without updating references; necessary new objects are still written.",
      "--update-refs=(branches|head): `branches` updates descendant local branches; `head` updates only the current HEAD reference. These values are mutually exclusive. Defaults to `branches`.",
      "--: Separates options from pathspec arguments.",
      "<pathspec>…: Limits which changes may be split; nonmatching files remain in the original commit.",
      "Prerequisite: Use Git 2.54.0 or later for the documented command. `git history` is experimental; its behavior may change.",
      "Prerequisite: The command does not support histories containing merges or operations that can result in merge conflicts.",
      "Prerequisite: For `split`, selecting all hunks or no hunks is invalid because one resulting commit would be empty."
    ]
  },
  "why_it_matters": "Split or rewrite commit history in a repository using Git's experimental history command.",
  "sources": [
    "https://github.com/git/git/blob/v2.54.0/Documentation/RelNotes/2.54.0.adoc",
    "https://git-scm.com/docs/git-history/2.54.0"
  ],
  "rank": 0.97014,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3-rejudge+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "wave1b-tools-20261017",
    "verdict_id": "wave1b-tools-20261017:wave1b-tools-20261017-f144b70630727ec9-1:rescue",
    "evidence_hash": "5dfd24c6d18d2a09fb5507be2b1243e511045a3af6191194d492a983a08f1b63"
  },
  "review": {
    "draft_hash": "abd31decfce3d248b56fe4538e79eeb7157e2634552881a0c6fdfa0e12dcad89",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-07T00:00:00.000Z",
    "decision": "wave1b-tools-20261017:rescue",
    "reason": "Rescue path: first rejected only because the extracted card lacked usage; judged again on the enriched card, 3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.97 >= 0.9; 2 needed) and Jev gave 0.61 (>= 0.6 needed)."
  }
}
