MindSpore码云代码提交步骤以及注意事项

MindSpore码云代码提交步骤以及注意事项

0. 前言

  • 准备工作

    • 下载git
    • 注册gitee账号
    • 签署个人CLA:MindSpore-CLA地址
      • MindSpore码云代码提交步骤以及注意事项_第1张图片
      • MindSpore码云代码提交步骤以及注意事项_第2张图片
  • 学习资源:

    • MindSpore官方代码提交教程视频、MindSpore官方代码提交wiki
    • git基础:猴子都能懂的GIT入门 、Learn Git Branching、Git - Book、开源指北
    • gitee基础:gitee帮助文档
    • github基础:开始使用 GitHub - GitHub Docs

1. 代码提交步骤

1.1 流程图

MindSpore码云代码提交步骤以及注意事项_第3张图片

1.2 配置git

1.2.1 查看并设置用户名和邮箱
  • 进入gitee个人主页

    • MindSpore码云代码提交步骤以及注意事项_第4张图片
    • MindSpore码云代码提交步骤以及注意事项_第5张图片
  • 打开终端(cmd、powershell等)

    • #设置用户名
      git config --global user.name XXX(你的用户名)
      #设置邮箱
      git config --global user.email XXX(你的邮箱)
      
    • MindSpore码云代码提交步骤以及注意事项_第6张图片

1.2.2 生成与添加SSH公钥
  • 生成SSH公钥

    • #生成SSH公钥
      ssh-keygen -t rsa -C "[email protected]"
      #如果有询问,选项直接回车即可
      #查看SSH密文
      cat xxx(密文保存地址,一般在C盘)
      
    • MindSpore码云代码提交步骤以及注意事项_第7张图片

  • 添加SSH公钥

    • 进入gitee个人主页找到“SSH公钥”,将上面的密文复制到公钥区域,并添加标题。
    • MindSpore码云代码提交步骤以及注意事项_第8张图片

1.3 fork远程代码仓库到个人代码仓库

  • 进入MindSpore/course代码仓库
  • 点击fork
    • MindSpore码云代码提交步骤以及注意事项_第9张图片

1.4 下载到本地仓库

  • 进入自己的代码仓库,然后复制下载地址
    • MindSpore码云代码提交步骤以及注意事项_第10张图片
  • 选择自己要克隆的本地路径,然后使用git clone xxx(刚才复制的内容)
    • MindSpore码云代码提交步骤以及注意事项_第11张图片

1.5 本地修改并push到自己的代码仓库

1.5.1 进入刚才的本地仓库,修改代码
  • 打开终端,进入本地仓库,使用git status查看状态

    • MindSpore码云代码提交步骤以及注意事项_第12张图片

    • 在没有改动时,显示没有可以提交的内容,接下来开始修改代码

    • MindSpore码云代码提交步骤以及注意事项_第13张图片

  • 改动case_4_key_technology_in_AI.ipynb文件后再查看git状态

    • MindSpore码云代码提交步骤以及注意事项_第14张图片
  • 使用git add case_4_key_technology_in_AI.ipynb将改动保存到缓存区

    • image-20220706213104056
  • 使用git commit来提交代码并进行评论,评论规范请点击这里查看

    • MindSpore码云代码提交步骤以及注意事项_第15张图片
1.5.2 push到gitee个人代码仓库
  • 再次复制个人仓库的SSH地址

  • MindSpore码云代码提交步骤以及注意事项_第16张图片

  • 修改远程push方式

    • #查看当前方式
      git remote -v
      #删除当前方式
      git remote rm origin
      #添加SSH方式
      git remote add origin [email protected]:jiayuzhang128/course.git
      
    • image-20220706214741559

  • 然后使用git push将代码推送到gitee个人仓库

    • MindSpore码云代码提交步骤以及注意事项_第17张图片
    • MindSpore码云代码提交步骤以及注意事项_第18张图片
    • 可以看到已经推送到个人仓库了,并且显示评论

1.6 网页提交PR,将代码并入主仓

  • 进入gitee个人代码仓库,点击"+Pull Request"
    • MindSpore码云代码提交步骤以及注意事项_第19张图片
    • MindSpore码云代码提交步骤以及注意事项_第20张图片
    • 下面就是创建成功等待合并的PR:
    • MindSpore码云代码提交步骤以及注意事项_第21张图片

2. FAQ-常见问题

2.1 如何将个人/本地仓库与远程仓库同步

2.1.1 需求描述

当前已经完成了远程主仓库fork到个人仓库以及本地下载,而远程主仓库已经发生改变,个人/本地仓库需要及时同步。

假设A是远程主仓库,B是个人仓库。

2.1.2 解决方法

  1. 关联两个仓库

执行命令git remote -v 查看远程仓库路径,如果只返回了两行结果,说明这时A、B两个仓库还未进行关联:

origin  https://gitee.com/B/xxxx.git (fetch)
origin  https://gitee.com/B/xxxx.git (push)

执行命令git remote add upstream https://gitee.com/A/xxxx.git将A仓库设为B的上游代码库,upstream的名称可以随便取,写abc也可以,之后B就用upstream这个名字与A进行联系。再次查看远程仓库路径,检查是否设置成功

upstream		https://gitee.com/A/xxxx.git (fetch)
upstream		https://gitee.com/A/xxxx.git (push)
origin  https://gitee.com/B/xxxx.git (fetch)
origin  https://gitee.com/B/xxxx.git (push)
  1. 拉取合并代码

执行命令git fetch upstream获取A上的更新(此时并不会修改本地代码)。然后执行git merge upstream/master将代码合并到自己的master分支上。或者直接使用git pull upstream master命令。

  1. push代码到fork的仓库

通过之前的操作,只是将自己的本地库和原来的远程库进行了同步,所以还需要将fork的仓库也进行同步才行。git push origin master,将代码push到B仓库,到这里才算将代码全部同步。

2.2 Notebook文件CI门禁常见问题

2.2.1 MarkDown问题

Mathematical formulas should be surrounded by blank lines
Unordered list style
Trailing spaces
Multiple consecutive blank lines
Headers should be surrounded by blank lines
Lists should be surrounded by blank lines

2.2.2 代码问题


2.2.3 在创建的PR中重新测试CI门禁

  • 在评论区输入/retest,点击评论即可。
    • MindSpore码云代码提交步骤以及注意事项_第22张图片

2.3 多次提交记录,如何进行合并

2.3.1 需求描述

代码仓提交规范要求,提交记录仅保留一条,所以多次提交时会有stat/needs-squash标签,需要进行合并多次提交。

MindSpore码云代码提交步骤以及注意事项_第23张图片

2.3.2 解决方法

已经又多次提交记录时,采用rebase方法合并多次提交记录,步骤如下:

  1. 命令行输入git rebase -i HEAD~2。i的意思是:interactiveHEAD~2为合并历史的前两个提交,同理,HEAD~4就是合并历史的前四个提交。

  2. 执行后回出现vim信息如下,然后第一行不变,将后面的pick改为ssquash。squash(挤压合并),作用是使用提交,将此提交与之前的提交合并。 然后保存文件退出vim;

  pick 56a06ef change 1: remove one blank line
  s edbeab5 change 2: add log on MainActivity
  
  # Rebase 23198ba..edbeab5 onto 23198ba (2 commands)
  ...
  1. 修改commit评论,将除了第一条评论外的评论全部删除,然后保存文件退出vim。
  2. 再次推送代码git push -f

已经提交了一次,想继续提交时,采用git commit --amend方法共用一个ID号,步骤如下:

  1. 修改代码之前,请先git fetch --all; git pull; 拉取最新的代码再修改
  2. 如果已经提交PR,此时可以基于上一个PR进行修改,使用 git add *; git commit --amend; git push -f;
  3. 通过commit --amend可以把当前的修改叠加到上一次代码中

你可能感兴趣的:(MIndSpore学习,git,ssh)