PR与issue的联动维护
当我们需要解决项目中的一个 bug 时,通常一个新的PR会伴随一个issue,本文将介绍仅需通过创建PR时一个操作,关联上issue,然后当PR被同意之后,对应关联的issue也将随之关闭。
同样,我先在示例项目中创建一个issue:

这种时候,作为项目维护者,我们可以直接点击Development中的 Create a branch 创建一个 fix 分支,这样会自动关联上这个issue,同理,当该 fix 分支创建的PR被合并之后,issue也会自动关闭。
不过这里不讲此种方案,大家有兴趣可以自行体验一番。
这里讲的是我们更常见的一种操作,在本地编辑器里,基于最新的main分支切出一个fix分支,如下:
git checkout main
git pull
git checkout -b fix_testbug然后就是在fix_testbug分支上进行对应问题的修复,这块儿不对赘述。
当我们感觉修复没问题了,也进行过自测了,就可以将此临时分支进行提交:
git add .
git commit -m "fix: test bug"
git push --set-upstream origin fix_testbug推到远程之后,我们来到 GitHub 页面中,此时可以看到 GitHub 会自动提示一个新的分支可以合并:

可以直接点击Compare & pull request:

注意右侧Development中的说明,我们可以通过在说明中添加一些关键字,从而对issue进行关联,并触发关闭。当然也可以先创建 PR,然后再进行关联也可以:

完成关联的 PR,可以看到有这样的状态显示:

这个时候,我们点击到#21号issue中,也可以看到被关联到该PR上了:

现在我们将 #23 号PR进行合并,合并之后可以看到关联的issue也被关闭了,此次关联的临时分支也被删除了:

以上就是项目协同中,PR与issue的联动维护。
另外: 这里插一个小点,当我们完成一次 PR 流程之后,作为项目主维护人,通常会再次切回到 main 分支,然后将远程被合并到 main 分支的代码拉到本地:
git checkout main
git pull这样执行之后,会发现本地代码竟然已经超过远程分支了:

其中的 389fe 那次是当前远程分支的 ID,我们可以执行如下命令,与远程对齐:
$ git reset --hard origin/main
HEAD is now at 389fe7b fix: test bug (#23)这样本地与远程就实现了对齐,在下次重新切分支,然后提交 PR 的时候,就不会出现上边那种,带了几次Merge的情况了。
图示如下:

理论上这次只有一个提交,而不应该出现 3 个commit,就是这个原因。