zlacker

[return to "Stacked Diffs with git rebase —onto"]
1. dimitr+TAe[view] [source] 2025-12-05 11:03:01
>>flexdi+(OP)
Jujutsu comes in handy here for the same usecase:

https://github.com/jj-vcs/jj

https://www.stavros.io/posts/switch-to-jujutsu-already-a-tut...

Also found https://github.com/gitbutlerapp/gitbutler

◧◩
2. ndr+UBe[view] [source] 2025-12-05 11:12:36
>>dimitr+TAe
The main issue I kept having when trying to do this with just git is then managing all the branch names to be attached to the right moved commits, so that my stack could be reviewable on github's open PRs.

Does jj help with that at all?

I've experimented a bit with git-town.com (OSS) and now everyone at $DAYJOB uses graphite.com (SaaS) which does that part very well.

◧◩◪
3. baq+YEe[view] [source] 2025-12-05 11:35:21
>>ndr+UBe
It’s one of the core features that rebases, including branch names (bookmarks in jj) work ‘correctly’. You can rebase whole dags, including merges, with multiple named heads with just one jj rebase -b.
◧◩◪◨
4. arccy+eKe[view] [source] 2025-12-05 12:14:52
>>baq+YEe
note that bookmarks don't float, unlike git branches, so if your pattern is to produce a lot of commits, you'll want something to keep your jj bookmarks pointing to the top of your pile of commits.

this is less of a problem if you're more into the 1 change == 1 commit workflow.

◧◩◪◨⬒
5. pimeys+IKe[view] [source] 2025-12-05 12:18:05
>>arccy+eKe
There's a very common alias `jj tug` for this case:

  tug = ["bookmark", "move", "--from", "heads(::@- & bookmarks())", "--to", "@-"]
It moves the nearest bookmark to the commit before the current one (which should be your working commit).
◧◩◪◨⬒⬓
6. mhitza+dkf[view] [source] 2025-12-05 15:23:52
>>pimeys+IKe
This looks like any other git arcane incantation. If this is a common pattern and jj aims to make things easier, should probably be part of the core commands, no?
[go to top]