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
2
3
然后就是在fix_testbug
分支上进行对应问题的修复,这块儿不对赘述。
当我们感觉修复没问题了,也进行过自测了,就可以将此临时分支进行提交:
git add .
git commit -m "fix: test bug"
git push --set-upstream origin fix_testbug
2
3
推到远程之后,我们来到GitHub页面中,此时可以看到GitHub会自动提示一个新的分支可以合并:
可以直接点击Compare & pull request
:
注意右侧Development
中的说明,我们可以通过在说明中添加一些关键字 (opens new window),从而对issue
进行关联,并触发关闭。当然也可以先创建PR,然后再进行关联也可以:
完成关联的PR,可以看到有这样的状态显示:
这个时候,我们点击到#21
号issue
中,也可以看到被关联到该PR
上了:
现在我们将 #23
号PR
进行合并,合并之后可以看到关联的issue
也被关闭了,此次关联的临时分支也被删除了:
以上就是项目协同中,PR
与issue
的联动维护。
另外: 这里插一个小点,当我们完成一次PR流程之后,作为项目主维护人,通常会再次切回到main分支,然后将远程被合并到main分支的代码拉到本地:
git checkout main
git pull
2
这样执行之后,会发现本地代码竟然已经超过远程分支了:
其中的389fe那次是当前远程分支的ID,我们可以执行如下命令,与远程对齐:
$ git reset --hard origin/main
HEAD is now at 389fe7b fix: test bug (#23)
2
这样本地与远程就实现了对齐,在下次重新切分支,然后提交PR的时候,就不会出现上边那种,带了几次Merge
的情况了。
图示如下:
理论上这次只有一个提交,而不应该出现3个commit
,就是这个原因。