3 ms·
How do the rebased commits work when working with others together on a branch?
by thibran 2y ago
How do the rebased commits work when working with others together on a branch?
- mpalmer 2y agoIt's no different from how rebasing works in any shared git project; rebased commits are re-created with different SHAs.
- crabmusket 2y agoRight but that doesn't address the collaboration issue: who gets to decide where the branch points to?
- nulld3v 2y agoThe person who last pushed. jj force pushes by default, but unlike git, the force push defaults to the "safe" variant (similar to git's --force-with-lease). So you won't accidently overwrite someone else's changes with your force push.
- gcr 2y agoIn jj, pulled commits are immutable by default. Commits that you author are mutable until you push them. If I'm on a project with change AAA -> BBB, suppose my friend authors CCC and I author DDD. So my history looks like: AAA ----> BBB ----> DDD (immutable) (immutable) (mutable) And my friend's has: AAA ----> BBB ----> CCC (immutable) (immutable) (mutable) But then my friend pushes their change first. So when I pull, I'll have: AAA -> BBB -> CCC (immutable) \ '-> DDD (mutable) Just like git, I then rebase my commit by saying `jj next` (mnemonic: "move this commit to its next descendant") to get AAA -> BBB -> CCC (immutable) -> DDD (mutable)