第一个pr的踩坑记录
简单记录一下第一次参与开源项目,提交pr的流程。
- fork开源库
- clone到本地
- 根据开源贡献指南,跑通代码,跑通测试
- 新建分支,通常分支名称是
feature/xxx
或fix/xxx
- 修改代码
- 提交代码,注意要按照指南写好提交信息
- push该分支到自己的fork仓库
- 在原开源库的页面上,点击
New pull request
- 选择刚才push的分支,点击
Create pull request
- 填写pr的标题和描述,描述中可以包含修改的内容、原因等
- 提交pr
下面是一些有关git的知识点:
- git 是分布式版本控制系统,所有的“分支”无论是本地还是远程,都是平等的。
- 在创建pr时,只是将我们fork库的某个分支与原开源库的某个分支进行比较,查看差异。我们fork下创建的分支的任何修改都不会影响原开源库。
- 因此,我们在fork库下的分支中,可以随意修改代码、修改提交历史、修改提交信息等。
- 当我们创建pr后,原开源库的pr页面可以看到我们fork库的分支的提交记录和代码差异。但这只是一个比较视图,我们依然可以对fork库的分支进行任何修改。
记录本次pr遇到的一个问题:
描述:在我提交pr后,收到团队成员的反馈,我使用不同的电脑修改并提交了代码,导致提交记录中Committer与Author不一致。后续修改过程中,误操作导致提交记录中出现了其他人的信息(可能因为提交信息中有 #issue
的引用,github自动将issue的作者信息关联起来)。总之,现在pr分支的历史一团糟。
解决:正如上面所说,所有的分支都是平等的,且pr仅仅做了比较。所以我只需要使用正确的git账号,用amend修改提交信息,使用交互式变基修改pr分支,并force push,问题就解决了。Pr页面显示的任何信息,是基于我们fork库的fix分支与开源库的dev分支进行比较,展示的差异信息,在合并之前,pr分支的任何修改,都不会影响原代码库。
This post is licensed under CC BY 4.0 by the author.