github / github/gh-stack

Why does `gh stack rebase --upstack` include the current branch?

オープン
#160 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
question topic: cli - rebase
主要言語
Go
スター
1.5k
フォーク
70
平均マージ
1日 8時間
マージ済み PR(30日)
7

説明

Say I have the following stack

```
main <- branch1 <- branch2 <- branch3
```

I'm _on_ `branch1`, and just addressed some reviewer feedback by adding a few extra commits. Now I need to do the following:

- rebase `branch2` on `branch1`
- rebase `branch3` on `branch2`

I do _not_ want to rebase `branch1` on `main` right now.

My instinct is to call `gh stack rebase --upstack` while on `branch1`, where I just addressed the feedback and added commits. I was expecting that to do what I outlined above and not change `branch1` in any way.

Surprisingly (to me), it did this:
- rebase `branch1` on `main`
- rebase `branch2` on `branch1`
- rebase `branch3` on `branch2`

Can I ask about why `--upstack` includes a rebase of the current branch on the branch under it? That actually feels a bit "down stack"-ish to me.

It feels like this exact workflow is going to be pretty common for me, and the current workaround is for me to `gh stack switch` up to `branch2` and _then_ run `gh rebase --upstack`, but that feels pretty unnatural to me!

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

The entry point is `gh stack rebase --upstack`; first reproduce it on the stack described in the issue and inspect how the command selects branches. Compare the observed sequence with the requested sequence, then check the command's existing tests if available. Done means rebasing from `branch1` leaves it unchanged while rebasing `branch2` and `branch3` onto their updated predecessors.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
git, github, go
領域
cli, developer-experience
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
48/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。