Git:及时分支(并切换头部)

Git: Branch back in time (and switch head)

上周,我开始了一个使用开源库的新项目。我在该库中发现了一个错误,将其分叉到 Github,修复了该错误,并提交了 PR。我收到了一些评论并做了更多的提交来更新我的 PR:

|-my commit 3  <- master (PR#1)
|-my commit 2
|-my commit 1
|-commit x     <- remote:master
...

在等待我的 PR 被合并时,我发现了另一个错误,创建了一个错误报告,在提交 x 处分支,提交了一个修复并创建了另一个 PR:

|-my commit 3     <- master (PR#1)
|-my commit 2
|-my commit 1
| |-my commit 4   <- fix_bug_2 (PR#2)
|/
|-commit x        <- remote:master
...

所以我最好在第一次提交之前进行分支。有什么方法可以修复它,以便我可以轻松地跟踪上游,同时为我发现的新错误创建更多 PR,而不会弄乱我现有的 PR?它应该是这样的:

|-my commit 3     <- fix_bug_1 (PR#1)
|-my commit 2
|-my commit 1
| |-my commit 4   <- fix_bug_2 (PR#2)
|/
|-commit x        <- master, remote:master
...

类似于:

或者我应该等到 PR#1 被合并,从现在开始永远记住不要在头上工作?

在“与 master 相同的提交”处创建名为 fix_bug_1 的分支:

git branch fix_bug_1 master

强行移动masterorigin/master所在的位置:

git branch -f master origin/master

据我所知,在 github 中无法更改 PR 的“源分支”,您必须创建一个新的 PR 来跟踪您的新分支。