Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: git/git
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 7bf3785d0973d229fa21a76122c7e4735a2b1ffb
Choose a base ref
...
head repository: git/git
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0ee71f4bd035db61342c2c5a25984e4545347c11
Choose a head ref
  • 2 commits
  • 3 files changed
  • 2 contributors

Commits on Jan 13, 2026

  1. Merge branch 'ps/history' into pw/replay-drop-empty

    * ps/history: (186 commits)
      builtin/history: implement "reword" subcommand
      builtin: add new "history" command
      wt-status: provide function to expose status for trees
      replay: support updating detached HEAD
      replay: support empty commit ranges
      replay: small set of cleanups
      builtin/replay: move core logic into "libgit.a"
      builtin/replay: extract core logic to replay revisions
      The 15th batch
      t3650: add more regression tests for failure conditions
      replay: die if we cannot parse object
      replay: improve code comment and die message
      replay: die descriptively when invalid commit-ish is given
      replay: find *onto only after testing for ref name
      replay: remove dead code and rearrange
      The 14th batch
      The 13th batch
      config: use git_parse_int() in git_config_get_expiry_in_days()
      receive-pack: convert receive hooks to hook API
      receive-pack: convert update hooks to new API
      ...
    gitster committed Jan 13, 2026
    Configuration menu
    Copy the full SHA
    9e4a786 View commit details
    Browse the repository at this point in the history
  2. replay: drop commits that become empty

    If the changes in a commit being replayed are already in the branch
    that the commits are being replayed onto, then "git replay" creates an
    empty commit. This is confusing because the commit message no longer
    matches the contents of the commit. Drop the commit instead. Commits
    that start off empty are not dropped. This matches the behavior of
    "git rebase --reapply-cherry-pick --empty=drop" and "git cherry-pick
    --empty-drop".
    
    If a branch points to a commit that is dropped it will be updated
    to point to the last commit that was not dropped. This can be seen
    in the new test where "topic1" is updated to point to the rebased
    "C" as "F" is dropped because it is already upstream. While this is
    a breaking change, "git replay" is marked as experimental to allow
    improvements like this that change the behavior.
    
    Helped-by: Elijah Newren <newren@gmail.com>
    Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    phillipwood authored and gitster committed Jan 13, 2026
    Configuration menu
    Copy the full SHA
    0ee71f4 View commit details
    Browse the repository at this point in the history
Loading