[Mindspore相关] [VScode]论如何优雅地在gitee中提交pr

此文章focus在Windows系统下使用Visual Studio Code编辑代码、提交pr,macos和Linux系通在下载编译器和安装包时会有些许不同

准备工作

Visual Studio Code安装

Visual Studio Code(以下简称VScode)官网下载链接如下:官方下载连接
问题就是下载太慢了,所以推荐使用国内镜像下载(参考 VsCode下载,使用国内镜像秒下载)

  1. 首先,从上述连接进入官网下载页面,选择合适的版本进行下载。
  2. 其次,在下载界面单机右键,copy下载连接,下面用windows x64的下载连接为例。
    在这里插入图片描述

https://az764295.vo.msecnd.net/stable/d045a5eda657f4d7b676dedbfa7aab8207f8a075/VSCodeUserSetup-x64-1.72.2.exe

  1. 最后,将链接中 /stable 前的部分替换为 vscode.cdn.azure.cn,再次点击链接下载。

https://vscode.cdn.azure.cn/stable/d045a5eda657f4d7b676dedbfa7aab8207f8a075/VSCodeUserSetup-x64-1.72.2.exe

Git 下载

我们需要将社区中的仓库clone到本地(详情见后续),git安装教程见 git windows/linux/macos下载

gitee注册

如第一次使用gitee,需在gitee官网进行用户注册,菊厂员工记得把用户名设为自己名字的拼音,不然代码出错时会被公开处刑

整体梳理

整个流程可以概括成2步:

  1. 将mindspore项目中的仓库保存到gitee个人账户
  2. 将个人账户中的仓库复制到本地pc

所以等到在本地pc上对代码进行更改后,再回推给mindspore项目,就是把上述过程反着来一遍:

  1. 将本地pc的更改push到个人仓库
  2. 将个人仓库中的更改合并到mindspore项目

接下来就是具体的操作啦

Fork远程仓库

进入Mindspore项目页面,点击仓库,搜索你的目标仓库,比如说我工作的就是在Mindspore/docs
在这里插入图片描述
在这里插入图片描述

在页面右上角点击 fork,这个操作会在个人的路径中创建一个和mindspore项目完全一样的仓库,在个人仓库中修改的代码不会影响到mindspore项目

在这里插入图片描述

fork结束后,点击右上角自己的头像,进入个人主页,并在个人主页的仓库中找到刚刚fork的仓库

本地clone远程仓库

这个步骤是将个人仓库复制到本地pc。
首先选择在要clone的仓库,点击进入。后点击克隆/下载,复制https链接
在这里插入图片描述

然后打开VScode,点击最上方的终端——新建终端,或者直接快捷键Ctrl+Shift+`

在这里插入图片描述

注意windows系统下默认打开的是powershell,如果想要切换到cmd,点击终端窗口右上角的+,打开下拉菜单后选择Command Prompt

在这里插入图片描述

(p.s. 如果以后经常用到cmd,则可以把他设置为默认,重复上面步骤的操作,只不过这次点击选择默认配置文件,然后在上方弹出的窗口中选择Command Prompt

在这里插入图片描述

在终端中输入 git clone + 刚刚复制的https,一般格式为

 git clone https://gitee.com/{你的用户名}/{仓库名称,比如我这里就是docs}.git

显示clone成功后,点击初始界面的启动——打开文件夹,或者快捷键Ctrl+K Ctrl+O,打开你想要access的文件夹(打开后文件路径会被储存到最近访问中,下次可以直接通过最近中的路径找到,或者Ctrl+R打开最近访问)

紧接着我们需要配置自己的用户名和邮箱地址(一次性操作)。输入:

git config --global user.email "你的邮箱"
git config --global user.name "你的姓名拼音"

最后,添加原作者的远程库(一次性操作),链接也可以通过进入mindspore项目的仓库页面复制,方法同上。

git remote add upstream https://gitee.com/mindspore/{仓库名称,如docs}.git

切换/创建/关联分支

一般像我所工作的文档教程案例部分,分支就代表了mindspore的使用版本,比如r1.9、r1.8等。可以通过 git branch得知自己当前所在分支

切换分支

有两种方法,一种是在终端中输入git checkout {分支名称};另一种是在Vscode界面点击左下角的分支图标(如下图),然后在弹出的窗口中选择你想要访问的分支。

在这里插入图片描述

创建分支

当然还是建议创建一个自己的分支,在终端输入git checkout -b {自己创建的分支名称}
即可在当前所在分支的基础上创建一个新的分支,并跳转到该新分支上。

举个例子,如果是想自己对1.8版本的代码进行测验或者更改,那我们就需要

  1. 先切换到r1.8版本
  2. 然后在此基础上创建一个叫做靓仔的新分支
git checkout r1.8
git checkout -b liangzai

于此同时,也需要在远程仓库中建立一个同样的分支。在gitee个人仓库页面,点击左上角的分支(默认为master),然后选择管理,在新加载的页面中点击新建分支
在这里插入图片描述
在这里插入图片描述
随后选择起点,即想要在哪个分支基础上新建分支,并将分支命名为和你VScode新建分支一样的名字liangzai)。

或者还有一个方法,在VScode终端用git checkout -b新建分支后,输入

git push origin {新建分支名称}

之后用git branch -av检查,就可以看到该分支也出现在远程仓库里了。

将本地分支与远程仓库分支关联

VScode终端输入

git branch --set-upstream-to=origin/{新建分支名称} {新建分支名称}

总结

还用靓仔分支举例子,利用VScode终端,从创建到将本地分支推送到远程仓库并关联的全部操作为

git branch												# 查看已有分支
git checkout r1.9										# 选择r1.9作为创建分支的起点
git checkout -b liangzai								# 在r1.9基础上创建新分支靓仔
git push origin liangzai								# 将本地分支靓仔推送到远程仓库
git branch -av											# 查看靓仔是否出现在远程仓库
git branch --set-upstream-to=origin/liangzai liangzai	# 将本地靓仔分支与远程靓仔分支关联

推送代码到远程仓库

推送代码

在新分支编辑完代码后,Ctrl+S保存当前文件1(这个很重要!)

这时在左侧的文件目录中,被更改的文件名称会相应变成黄色,并在旁边有一个M的标志,表示该文件被modified了2。同时,最左侧的工具栏的分支图标会出现一个下角标1,表示有一个文件被更改3
在这里插入图片描述

在下方的终端,输入git add {修改文件},随后可用git status检查变化是否被staged了(git status检查这步非必须)。

接着,git commit -m "{对此更改的描述}",方便后续在gitee仓库的commits中回顾时了解到这步进行了什么操作。

最后,git push将改动的代码推送到远程仓库对应分支的对应文件下。如果推送到远程仓库的分支和之前设置的不一样怎么办?使用git push origin {想要推送的分支名称}

用上图的resnet50.ipynb作为例子,从本地靓仔分支推送到远程靓仔分支,cmd指令总结如下:

git add resnet50.ipynb
git status										# 可有可无
git commit -m "add one comment for testing"
git push										# 因为之前关联过所以直接git push

这时代码已经推送过去了,可进入gitee远程仓库查看。

将原有代码和改动代码进行比较

如果我们在码代码中途突然发现一个步骤不需要改动,但奈何又手快保存好了文件,该怎么恢复原状呢?

本操作仅限于比较当前代码和最近一次git push后的版本

点击最左侧工具栏中的分支图标,在更改一栏下方找到想要对比的文件,双击该文件,就会出现当前代码和远程仓库该文件代码的比较。

在这里插入图片描述

想要revert操作,点击最中间的小箭头就好啦。
在这里插入图片描述

如果想要撤销所有的更改,可以直接点击左侧更改栏下,文件名旁边的返回箭头。

在这里插入图片描述

合并分支到mindspore项目

一般提交pr的时候,需要写明pr的类别,关联责任人和issue,而除了你本次编辑本来就是为了解决之前已有issue中提到的问题,往往像合并分支这样的操作都需要创建一个新的issue。

创建Issue

第一种方法,是在Mindspore项目仓库中找到你之前fork的仓库,进入仓库界面后点击+ Issue

(p.s.或者在你个人仓库界面,仓库名称下方会有很小的一行forked from Mindspore/xxx,点击这行字可以直接跳转到mindspore项目中的对应仓库)

在这里插入图片描述

第二种方法,点击上方工具栏的Issues,然后在新加载的界面中点击新建Issue

在这里插入图片描述

在issue填写界面,类别选择Task Tracking,填写好标题,最后点击创建。

在这里插入图片描述

创建pr

回到自己的个人仓库,重复上面创建issue的类似步骤,只不过这次选择的是+Pull Request

在这里插入图片描述
在这里插入图片描述

在创建pr界面,选择想要合并的源分支(例子中就是新创建的分支liangzai)和目标分支。

关联issue有两种途径,一种是将左侧界面下滑到底,会有一个which issue(s) this PR fixes的问题,在下方找到Fixes后输入你新建pr的编号(如果关联历史同理,复制编号,粘贴到Fixes后面);另一种是在右侧关联issue中搜索关键词后选择issue。

在这里插入图片描述

CLA 合约

第一次提交时会让你签署CLA合约,点击i-robort提供的链接,个人开发者签署individual CLA即可。签署成功后,机器人会自动打上mindspore-cla/yes的标签。

过门禁

在正式合并之前,需要首先经过代码审查,包括检查代码格式,变量使用问题等等。

第一次提交pr后,在评论区输入/test并发送,如果检查出现问题,会返回如下窗口
在这里插入图片描述
点击Details下方的一串数字,就可以进入到具体的问题解析。如下图,点击报错的环节,进入修改建议。
在这里插入图片描述
下图中标红框的地方就是需要修改的错误,可以根据cell number和line number以及最后的内容在原代码中进行定位,也可以根据error(如:C0326)编码来到pylilnr-error中查看具体解析。
在这里插入图片描述

举个例子。

在这里插入图片描述
这里显示我是在第21个cell的第16行中出现了C0326类错误,看后面的解释是需要在","后添加一个空格。以往万一,我们也去pylint-error中确认一下。
在这里插入图片描述
ummmm,确认了,就是在骂我空格用的很烂。赶快回代码中修改一下。

在这里插入图片描述
其实如果还是感觉通过error code查找给出的建议很模糊,可以直接复制错误描述语句,比如说这里的Exactly one space after comma,然后粘贴到浏览器中查找。

修改好后,再次git push origin liangzai,在pr界面评论/retest,让机器人检查代码,如果出现如下的结果,那就说明代码至少在CI测试上没问题啦。
在这里插入图片描述

强制推送代码

但问题是,经过多次删改,CI测试是过了,但出现了stat/needs-squash的标签,怎么回事?

原因是pr中只能有一个commit,所以在代码不出问题后,需要回滚到最最开始的状态,然后一次性把全部改动强制提交。

VScode终端中输入git log查看过往推送代码历史,找到最初始、改动前的version(一般后面会写有origin/master的ID,如果没有,也可以通过定位author是自己账号最后一次出现的位置,它的下一个就是应该回滚到的状态了)
在这里插入图片描述
找到后,复制commit后的一长串黄色编号,后输入q退出,在终端中输入git reset {复制的一长串字符},最后再次重复推送代码的操作,只不过这次的git push变成了git push -f

cmd总结:

git reset {复制的长字符串}
git add {更改的文件} 			# 如果出现多个文件被更改,可以输入[git add . ],表示stage全部有更改的文件
git commit -m {commit信息}
git push -f origin {想要推送的分支}

推送完毕后,再次回到pr界面,评论/test。在CI测试通过的消息出现时,所有需要我们完成的步骤就都结束啦,剩下的便是联系审查员来进行人工审查代码了。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VSCode是一款功能强大的源代码编辑器,它允许用户自定义编辑器的外观和设置,包括字体设置。而Envy Code R是一种非常受欢迎的等宽字体,也是VSCode用户喜欢的字体之一。 Envy Code R PR7是Envy Code R字体的第七个版本,是对之前版本进行了一些改进和优化。这个字体在编程界被广泛使用,因为它的字符非常清晰、易读,并且体现出很好的视觉一致性。 要在VSCode设置Envy Code R PR7字体,首先我们需要将字体文件安装到我们的操作系统。在Windows系统,我们可以将字体文件(如.ttf或.otf格式)复制到C:\Windows\Fonts文件夹。在macOS系统,我们可以通过双击字体文件来进行安装。 安装完成后,我们打开VSCode,点击菜单栏上的"文件",选择"首选项",再选择"设置"。在设置页面,搜索框输入"font",然后点击"编辑工作区设置"按钮。在打开的settings.json文件,可以看到一个空的JSON对象,我们可以在其添加我们想要的自定义设置。 要设置Envy Code R PR7字体,我们可以添加如下设置: "editor.fontFamily": "Envy Code R Pr7", 这样,VSCode的编辑器界面就会使用Envy Code R PR7字体进行显示了。您还可以进一步进行其他设置,例如调整字号、行高等,来满足自己的阅读习惯。 总结来说,通过像上述这样简单的设置,我们可以在VSCode使用Envy Code R PR7字体,这将使我们在编程时拥有更好的视觉体验,从而提升我们的工作效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值