Github Contribute 注意事项
· 4 min read
当我们在Github
上贡献代码时要注意些什么?如下是个人贡献时总结的一些小心得,欢迎轻拍。
代码提交流程
如下以以kubernetes
为例,核心操作步骤如下图:
签署贡献协议
目前大多数开源项目都需要签署贡献协议,比如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-lint
、goimports
来做代码格式等相关静态检查,在提交PR
的时候都会检查是否符合这些工具的规范。
在golangd
中配置上述工具,在文件产生变更的时候自动执行上述命令,进行格式校验,下面以Mac Goland
为例讲解配置 :
- 通过
command+,
快捷键打开系统配置,或者点击左上角preferences
菜单。 - 搜索
File Watchers
- 点击添加按钮,选择对应工具即可:
- 添加后可以选择所有项目生效或者当前项目生效。
.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