第一次向OpenMMlab社区提pr保姆级教程【Windows】

下载git

因为我们是在windows10下操作的,所以的命令都是用git去实现。
1、先从官网下载最新版本的Git
官网下载地址:https://git-scm.com/downloads
在这里插入图片描述
点击上图中表示的地方进行下载。后续安装选择,可参考Windows10下安装Git

github中使用ssh

由于安全原因等考虑,github 对 https 做了一些限制,直接导致部分用户用着用着,提交不了代码了。所以,需要开始学习 ssh 方式。

1、检测自己git config是否配置

首先参看自己的Git config,可以通过git config --global --list查看
在这里插入图片描述
如果没有user.name和user.email的值话,可以先配置,配置的命令行如下

git config --global user.name "这里换上你的用户名"
git config --global user.email "这里换上你的邮箱"

也可以在电脑内查看文件,以windows电脑为例,路径大概是C:\Users\Administrator,之后的ssh key也是生成在这个目录下。

2、生成密钥文件

打开git bash,输入命令

ssh-keygen -t rsa -C "useremail"   

这里useremail是你github的邮箱,回车后会询问你ssh key生成的路径、是否需要密码,不需要的话直接留空回车即可
生成成功后,会在c盘用户里出现.ssh文件
在这里插入图片描述
其中,id_rsa.pub是公钥文件,后续会使用

3、在github上添加ssh密钥

1、用记事本打开id_rsa.pub,并复制里面全部内容
2、打开github,登录自己的账户,进入settings,找到:在这里插入图片描述
点击new ssh key,新增一个ssh,将刚才复制的内容粘贴到下图所示的key中,title可以随便写,最后确认即可。在这里插入图片描述

4、设置github

git bash中输入

ssh -T git@github.com

然后会跳出一堆东西,只需要最后输入yes回车就成功了。

提交pr

官网给的具体步骤:拉取请求(pr)

1、Fork Github仓库

原先的代码是别人的,无修改权限,为了修改代码,需要在自己仓库复制一份。Fork到自己仓库。
在这里插入图片描述

2、git clone克隆代码到本地并添加原代码库作为上游代码库

fork后,在自己命名空间下对代码副本拥有修改的权限,接下来就是将自己仓库中的项目副本克隆到本地。在这里插入图片描述
复制图中ssh ,然后在git bash中输入

git clone git@github.com:XXX.git

添加原代码库为上游代码库

git remote add upstream git@github.com:open-mmlab/mmdecection

其中,open-mmlab/mmdecection是我这边展示的原代码库,在使用时根据实际情况修改。

3、从主分支中创建一个新的开发分支

创建名为branchname的分支,其代码中 branchname名字可随意跟换

git checkout -b branchname

查看已经创建的分支,如图有branchname和master两个分支

#查看已创建的分支
git branch
#分支切换
git checkout xxx

若,github远程建了分支,本地看不到
原因:没及时同步

#查看本地仓库的所有分支
git branch -a
#首先切到master分支
git checkout master
#同步
git pull

在这里插入图片描述

4、安装pre-commit

在系统中安装pre-commit

在cmd中输入命令

#安装pre-commit
pip install pre-commit
#查看版本
pre-commit --version

在项目中安装pre-commit

在git bash中输入命令,其中mmxxx是你克隆的项目名称

cd mmxxx
#安装
pre-commit install
#卸载
pre-commit uninstall

常用指令

# 手动对所有的文件执行hooks,新增hook的时候可以执行,使得代码均符合规范。直接执行该指令则无需等到pre-commit阶段再触发hooks
pre-commit run --all-files
# 执行特定hooks
pre-commit run <hook_id>
# 将所有的hook更新到最新的版本/tag
pre-commit autoupdate
# 指定更新repo
pre-commit autoupdate --repo https://github.com/DoneSpeak/gromithooks

5、修改提交项目代码

将代码修改后,执行git status命令查看修改了那些文件,红色提示为修改的文件
在这里插入图片描述
在提交修改的代码之前,pre-commit 一下。这里需要注意的是在 commit 提交之前我们要安装pre-commit然后对所有的文件执行 hook,使代码均符合规范。为OpenMMlab做贡献所需要注意的,代码风格规范
这个指令,手动对所有的文件执行 hooks,新增hook的时候可以执行,使得代码均符合规范。这里 OpenMMlab 采用 PEP8 作为首选的代码风格。对 OpenMMlab 提 PR,就默认跑这个不用改默认设置。

pre-commit run --files xxxx

这里的 xxx 是你修改的文件,结束 pre-commit 后,提交命令如下,其中[files]为你要交的文件路径。

git add [files]
git commit -m 'messages'

成功修改提示,一个文件已经修改提交会显示下图
在这里插入图片描述

6、推送你的修改到复刻的代码库,并创建一个拉取请求(pr)

推送当前分支(breanchname)到远端复刻的代码库

git push origin branchname

创建一个拉取请求(这个是在自己fork仓库里的)
在这里插入图片描述
这一步是修改拉取请求信息模板,描述修改原因和修改内容。还可以在 PR 描述中,手动关联到相关的议题 (issue)。

7、讨论并评审你的代码

创建拉取请求时,可以关联给相关人员进行评审
在这里插入图片描述
根据评审人员的意见修改代码,并推送修改

8、pr合并之后删除该分支

#删除本地分支
git branch -d branchname
#删除远程分支
git push origin --delete branchname 

到这里就结束了~ 祝大家多多提pr,一起进步。散花,散花~~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值