I think I may have answered some of your questions here in my other reply to Elijah, so consider reading that too. On Thu, 3 Apr 2025 at 11:10, Nico Williams <nico@xxxxxxxxxxxxxxxx> wrote: > > I agree that `git rebase main <change ID>; git switch <change ID>` is > not a good UI, and I wouldn't want it even though I want change IDs. Why do you think it's not a good UI? Is it because the change ID isn't meaningful? That's correct, but they are also very convenient. The unique prefix is usually two letters or so, depending on how many "local" commits you have in your repo. That makes them easy to type. I basically never refer to a commit by a branch name anymore. > > And if it does work, isn't it expensive since you'd need to walk > > history to find it? Or do you keep an extra lookup table on the side > > somewhere? > > Worse: since there can be many commits with the same change ID they > can't be used as refs because Git can't possibly be expected to find > _the one_ you really intend -- how could it? I suppose Git could let > you pick from a list, but that's not likely going to have enough > context. Maybe Git could give you a list of named branches in which it > found some change ID's commits to pick one branch from, or maybe one > could `git cherry-pick --from $some_branch $cid` and have Git find the > commit(s) on `$some_branch` that match change ID `$cid`. See my reply to Elijah. There's usually just one visible commit with a given change id a repo.