为github项目提交补充(pr)教程

news/2024/7/20 12:37:55 标签: git, rust, 操作系统, 内存管理, vscode

提交pr

记录第一次提交PR

  • 前言
  • github提交补充
    • 什么是PR:
    • Fork:
    • git clone自己仓库:
    • git remote add upstream和他人仓库建立关系:
    • git checkout branch名切换分支:
    • 开始DIY项目文件:
    • 推送修改到自己仓库:
    • 空Head问题:
      • cherry pick:
      • git reset:
    • 推送完成,提交PR:
    • 修改PR:
  • 后记:

前言

Vue框架:从项目学Vue
OJ算法系列:神机百炼 - 算法详解
Linux操作系统风后奇门 - linux
C++11:通天箓 - C++11
Python常用模块:通天箓 - Python

github_9">为github提交补充

什么是PR:

"PR" 是 Pull Request 缩写的称谓。
在开源软件开发中,一个 Pull Request 是指将你所做的更改推送到一个开源项目的代码库中并请求该项目的维护者们审查并接受你的修改。

Fork:

  • 点击项目主页右上角Fork叉子图标,将项目拷贝到自己的github仓库中:Fork

  • 注意默认只拷贝项目的default分支文件到新仓库,若拷贝全部项目,取消√:
    main branch

git_clone_22">git clone自己仓库:

  • 从自己仓库进入Fork的项目,发现网页路由和Git路由都改为了自己名称下的路径:
    fork

  • vscode中打开一个预备存放项目的文件夹,Ctrl + 、打开控制台,执行clone命令:

git clone 上图code按钮下的HTTPS链接或者SSH链接

clone

  • clone成功后,文件夹下多一个项目文件夹,进入后可查看更多信息:
cd 目标文件夹              《用于进入目标文件夹》
git status               《查看当前项目改动情况,以及目前所在分支》
git branch -a            《查看所有分支》

branch对应网页这个按钮:
branch

git_remote_add_upstream_41">git remote add upstream和他人仓库建立关系:

  • 使用git remote -v查看当前本地文件夹和git仓库之间关系:目前关联自己仓库
    在这里插入图片描述
  • 使用git remote add upstream 原本项目网址 和原本项目建立关联
    • 原项目网址在原本项目的code按钮下:
      code
    • 如果git remote add upstream 错误网址,可用git remote rm upstream取消关联
    • 关联成功后,可见origin和upstream不同源

git_checkout_branch_50">git checkout branch名切换分支:

  • 很可能要修改的代码不在default分支里面,需要先git checkout切换分支:
    • 注意!不要用!不要用!不要用!git checkout -b,因为 -b 是新建分支。
      checkout

开始DIY项目文件:

  • 这时要DIY的项目代码都在Vscode左侧文件列表里面了,可以随便增删改:
    修改代码

推送修改到自己仓库:

  • 可以直接在master的分支,也可以新建一个分支进行推送。
    • 如果git log发现只有(Head),没有(Head -> 本地分支,云端分支)
    • 需要及时checkout 连接到目标分支:
git checkout -b lab4 origin/lab4
本地创建一个lab4分支,和自己云端仓库lab4关联,切换到这个本地仓库

在这里插入图片描述

  • 修改完成后,使用git status查看修改内容:
    <a class=git status" />
  • 使用git add . + git commit -m “提交说明”,将修改提交到中转站:
    add.
  • 使用git push origin 目标分支名,将修改从中转提交到origin仓库:
    • 所有分支名通过git branch -a查看
      <a class=git push origin" />

空Head问题:

  • git add、git commit 和 git push之后,发现自己网页仓库没有变化,很可能就是上文说的git Head指针

cherry pick:

  1. git log 记录 commit号,多次commit就有多个
  2. 切换到和目标推送到远端branch所关联的本地branch,切换之后git log发现(Head -> 本地分支,云端分支)
  3. git cherry-pick commit号码1 commit号码2 commit号码3 …,空格隔开commit号
  4. 成功之后再git push origin 目标分支 一次即可

git_reset_83">git reset:

  1. 若cherry-pick 错误的commit号码,可以git cherry-pick --abort,之后git log发现pick的号码都无了
  2. 可以通过git reset 第一步中最新一次commit号,找回所有丢失的commit号
  3. git log查看是否有目标commit号,有的话继续一次git push origin 目标分支

推送完成,提交PR:

  • 成功push之后网页有提示:
    push
  • 点击Compare & pull request,查看PR内容。
    PR
  • 可以create pull request发起PR请求,也可以create draft pull request仅保留草稿。
    create PR

修改PR:

  • 提交到源项目之后,会有审核提供修改意见,一般是按照行单位提供意见:
    +
  • 只需要在本地做出修改后,git add + commit + push,PR随之修改。

后记:

  • 感谢OS课设 李弘宇 老师回答我关于TLSF内存管理疑问,耐心解决了我遇到的许多git的白痴问题,祝福一切顺利。
  • Rust实时操作系统实验非常有含金量,自己实现一个malloc和free,了解了很多底层内存管理,作为五一假期的结束很精彩。
  • 第一次向开源项目提交PR,很激动。

http://www.niftyadmin.cn/n/311798.html

相关文章

idea部署tomcat(偏小白向)

目录 一、环境部署 1.安装idea ultimate任意版本 2.java稳定的版本如&#xff1a; 3.apache-tomcat任意版本&#xff0c;需要考虑兼容性&#xff0c;大家可以百度一下 二、部署简单的javaweb环境 总结 1.第一个问题 2.第二个问题 一、环境部署 1.安装idea ultimate任意版本…

从头开始学习Python接口自动化测试:编写测试用例,执行测试以及生成测试报告

Python接口自动化测试详解 随着Web服务和移动应用不断增多&#xff0c;以及对API和微服务的需求不断增加&#xff0c;API已成为现代应用程序中必不可少的组件。自动化测试框架可以大大简化API测试的过程&#xff0c;并确保其正确性和稳定性。Python是一种非常流行的编程语言&a…

dagger的使用

Jetpack的dagger是一种依赖注入框架&#xff0c;可以帮助Android应用程序实现松散耦合、易维护和可测试的代码结构。以下是使用Jetpack的dagger的一些基本步骤&#xff1a; 添加依赖项 在项目的build.gradle文件中添加以下依赖项&#xff1a; dependencies { implementation c…

代码随想录复习 151反转字符串中的单词242 有效的字母异位词 0-1背包问题

代码如下 func reverseWords(s string) string { b : []byte(s) slowindex,fastindex : 0,0 //设置两个指着&#xff0c;快慢指针 for len(b) > 0 && fastindex < len(b) && b[fastindex] { fastindex //这里是取出开头的空格&#xff0c;逻辑…

华为OD机试真题 Java 实现【微服务的集成测试】【2023Q1 100分】

一、题目描述 现在有n个容器服务&#xff0c;服务的启动可能有一定的依赖性&#xff08;有些服务启动没有依赖&#xff09;&#xff0c;其次服务自身启动加载会消耗一些时间。 给你一个 nxn 的二维矩阵 useTime&#xff0c;其中 useTime[i][i]10 表示服务 i 自身启动加载需要消…

网站电脑商城项目笔记

目录 注册 3.1规划需要执行的SQL语句 3.2设计接口和抽象方法 3.3编写映射 4.注册-业务层 4.1规划异常 4.2设计接口和抽象方法 5.注册控制层 5.1创建响应 5.2设计请求 5.3处理请求 5.4控制层优化设计 6.注册-前端页面 注册 持久层&#xff1a;通过Mybatis来操作数据…

Grafana 系列-统一展示-3-Prometheus 仪表板

系列文章 Grafana 系列文章 知识储备 Prometheus Template Variables 你可以使用变量来代替硬编码的细节&#xff0c;如 server、app 和 pod_name 在 metric 查询中。Grafana 在仪表盘顶部的下拉选择框中列出这些变量&#xff0c;帮助你改变仪表盘中显示的数据。Grafana 将…

模型微调的预处理

一.简历文本标注数据的准备 目标&#xff1a;把原始数据集转换为PaddleNLP支持的文本/文档抽取标注格式&#xff0c;为后续的模型微调做好准备。 工具&#xff1a;Label Studio 使用手册&#xff1a; applications/information_extraction/label_studio_text.md PaddlePad…