Github Contribute 注意事项

August 28, 2022

当我们在Github上贡献代码时要注意些什么?如下是个人贡献时总结的一些小心得,欢迎轻拍。

代码提交流程

如下以以kubernetes为例,核心操作步骤如下图: git_workflow.png

签署贡献协议

目前大多数开源项目都需要签署贡献协议,比如DCO协议,签署使用的就是当前github账号的账号和邮箱,所以在项目提交代码的时候需要先进行配置:

$ git config --local user.name lengrongfu
$ git config --local user.email 1275177125@qq.com

一个PR尽量只用一个Commit

单发生多次代码修改的时候,在commit的时候使用最开始的commit,使用命令如下:

$ git commit -s --amend --no-edit
# -s 后会在PR中加入签名信息:Signed-off-by: lengrongfu 1275177125@qq.com
# --amend 追加commit,使用同一个commit ID
# --no-edit 不进行任何更改,如果要修改commit 信息就不要使用这个标签

Go项目开发要注意什么

go开源项目目前大多都是使用的golangci-lintgoimports来做代码格式等相关静态检查,在提交PR的时候都会检查是否符合这些工具的规范。

golangd中配置上述工具,在文件产生变更的时候自动执行上述命令,进行格式校验,下面以Mac Goland为例讲解配置 :

  • 通过command+,快捷键打开系统配置,或者点击左上角preferences菜单。
  • 搜索File Watchers
  • 点击添加按钮,选择对应工具即可:

file-watcher.png

  • 添加后可以选择所有项目生效或者当前项目生效。

.gitignore是否可以不修改

很多编辑器都有对应的隐藏文件.vscode.idea等,我们通过编辑器首次打开项目后都会生成这个文件,如果我们不想让这个文件提交,就只能往.gitignore里面加入忽略文件的信息。

但是从代码仓库管理员的角度看,如果每个人都把特定于个人的配置加入到.gitignore中,那整体维护起来将会很难。

有一个更好的解决办法:为您的所有存储库创建一个个人的全局.gitignore文件。

  • 选择一个地方存储全局.gitignore的文件,大多数人选择主目录
$ touch ~/.gitignore
  • 在里面加入自己需要忽略的文件或者文件夹
$ vim ~/.gitignore
.DS_Store
.idea
.vscode
  • 最后,配置git使用我们新创建的~/.gitignore文件
$ git config --global core.excludesfile ~/.gitignore
  • 如果您是 Windows 用户,则需要以不同方式格式化路径
$ git config --global core.excludesfile %USERPROFILE%\.gitignore

引用


LRF 记录学习、生活的点滴