Post

第一个pr的踩坑记录

简单记录一下第一次参与开源项目,提交pr的流程。

  1. fork开源库
  2. clone到本地
  3. 根据开源贡献指南,跑通代码,跑通测试
  4. 新建分支,通常分支名称是 feature/xxxfix/xxx
  5. 修改代码
  6. 提交代码,注意要按照指南写好提交信息
  7. push该分支到自己的fork仓库
  8. 在原开源库的页面上,点击 New pull request
  9. 选择刚才push的分支,点击 Create pull request
  10. 填写pr的标题和描述,描述中可以包含修改的内容、原因等
  11. 提交pr

下面是一些有关git的知识点:

  1. git 是分布式版本控制系统,所有的“分支”无论是本地还是远程,都是平等的。
  2. 在创建pr时,只是将我们fork库的某个分支与原开源库的某个分支进行比较,查看差异。我们fork下创建的分支的任何修改都不会影响原开源库。
  3. 因此,我们在fork库下的分支中,可以随意修改代码、修改提交历史修改提交信息等。
  4. 当我们创建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.