• GitHub配置账号Pull Request更新代码分支


    0 前言

    项目需要,安排在GitHub仓库更新代码分支

    在Windows环境下,通过git软件进行实现

    1 安装git

    首先安装git,后续操作若无特殊说明,命令均在git base中执行

    官网因为众所周知的原因,下载不方便,因此选择了清华软件源进行下载

    https://mirrors.tuna.tsinghua.edu.cn/github-release/git-for-windows/git/Git%20for%20Windows%202.37.1/

    在这里插入图片描述

    安装后,右键桌面出现如下则说明安装成功,win11的话需要点击更多按钮才可出现如下菜单

    在这里插入图片描述
    打开git bash即可
    在这里插入图片描述
    主界面,然后配置本地账户,输入

    git config --global user.name "自定义本地用户名"
    
    • 1
    git config --global user.email "你的邮箱地址"
    
    • 1
    注:一般用这个设置本地的用户信息,以方便查看提交的用户信息
    config 有三个作用域参数 :
    local:只对本仓库有效
    global:只对登陆用户的所有仓库有效
    system: 对系统的所有用户有效
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2 生成ssh公钥和私钥

    首先查看电脑之前是否生成过密钥,避免后续命名出现记忆错误

    最稳妥的就是提前删除电脑中存在的id_rsa、id_rsa.pub文件,这是之前ssh生成密钥的默认名称
    在这里插入图片描述
    可以按如下命令来生成 ssh key:

    ssh-keygen -t rsa "邮箱名称 XXX@XX.com"
    
    • 1

    在这里插入图片描述

    注意:生成的文件名跟密码可以不填,直接按3次回车.填了以后使用git都要输入密码
    
    • 1

    按照提示完成三次回车,即可生成 ssh key.通过查看 ~/.ssh/id_rsa.pub 文件内容,获取到你的ssh key

    cat ~/.ssh/id_rsa.pub
    
    • 1
    注:~/ 指的是用户名下面的文件夹,即 C:/用户/用户名/
    
    • 1

    输出:

    在这里插入图片描述
    这个就是ssh key的内容(可以理解公钥)

    复制生成后的 ssh key,通过点击个人头下的设置>找到安全设置>SSH公钥 ,添加生成的ssh key 添加到仓库中。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在Title处给该公钥取个名称,在Key部分将id_rsa.pub文件内容添加进去,然后点击“Add SSH key”按钮完成配置。
    在这里插入图片描述

    3 配置config文件

    如果在~/.ssh/下没有config文件,需要先创建config文件 :touch config

    然后填入以下内容
    在这里插入图片描述

    Host github.com
        User git 
        Hostname ssh.github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa
        Port 443    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    执行

    ssh-add
    
    • 1

    若出现

    Could not open a connection to your authentication agent
    
    • 1

    执行如下命令

    ssh-agent bash
    
    • 1

    然后再执行

    ssh-add ~/.ssh/id_rsa
    
    • 1

    4 测试

    git@github

    执行命令

    ssh -T git@github
    
    • 1

    若出现如下错误
    在这里插入图片描述
    执行

    ssh -T -p 22 git@github.com
    
    • 1

    其中-p 22表示将服务器端口改为22。

    出现

    Hi Sheng-ZM! You’ve successfully authenticated, but GitHub does not provide shell access.
    在这里插入图片描述

    git clone

    直接执行

    
     git clone
    
    • 1
    • 2

    因为没有指定克隆的目录,所以会提示错误,不过能打印出来信息证明clone功能正常
    在这里插入图片描述

    5 生成token

    现在github出于安全的考虑,将在2021年8月停止使用账号和密码的方式访问github仓库,改为token认证的方式。

    登录github,生成token令牌进行认证。

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    输入登录密码

    填写描述、过期时间、选择权限范围
    在这里插入图片描述
    在这里插入图片描述
    复制令牌并保存起来(只会出现一次,之后将不会再次出现)
    在这里插入图片描述

    6 Pull Request

    6.0 介绍

    PR 的全称是Pull Request,经常用 Github 的同学对这个肯定很熟悉了。Github 聚集了4000万开发者,过亿的开源项目,如果想给别人的开源仓库贡献代码,通常是先 fork 别人的项目,然后本地修改完成提交到自己的个人 fork 仓库,最后提交 PR 等待别人合入你的代码。

    Github 的工作流:
    在这里插入图片描述
    fork 工作流

    我们重点看一下第6步,小明写完代码了想合入到原作者的仓库,新建了一个“pull request”,拉请求?这明明是推啊,小明将自己的修改推到原作者的仓,感觉叫“push request”比较合适吧。

    既然 Github 坚持叫“pull request”,我们试着理解一下它的思路,小明写完代码了心里肯定是在想:原作者大神,我改了点东西,你快把我的修改拉回去吧。站在原作者的角度思考,叫pull request好像也说得过去,每天有大量的人从我这里 fork 代码走,我只会拉取我感兴趣的代码回来。

    6.1 fork

    fork小红在GitHub上的Repository到小明的GitHub

    在这里插入图片描述
    点击右上角的fork按钮就可以把代码全部复制到自己的Repository

    6.2 clone本地

    打开刚才fork的Repository,复制该Repository的SSH使用命令

    git clone git@github.com:Sheng-ZM/tms-go-apihub
    
    • 1

    在这里插入图片描述
    默认地址是 ~ ,即下载文件夹到了C:/用户/用户名/

    6.3 add

    6.3.1 查看当前链接情况

    在这里插入图片描述
    命令查看一下小明的本地Repository与哪些远程仓库建立了链接

    git remote -v
    
    • 1

    发现:只与小明在GitHub的Repository建立了链接,很显然没有与小红在GitHub上的Repository建立链接,如下图:
    在这里插入图片描述

    6.3.2 建立新的链接

    使用命令

    git remote add upstream https://github.com/jasony62/tms-go-apihub/
    
    • 1

    再次查看
    在这里插入图片描述

    6.3.3 同步远程main分支到本地shengzm-branch分支

     git pull https://github.com/jasony62/tms-go-apihub.git main:shengzm-branch
    
    • 1

    在这里插入图片描述

    6.3.4 更新自己分支的代码 from upstream

    git fetch upstream
    git merge upstream/main
    
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    6.4 Commit

    6.4.1 新建工作分支

    使用命令:

    
    git checkout -b shengzm-branch
    
    • 1
    • 2

    新建并切换到新建的分支 shengzm-branch;

    使用命令:

    git branch
    
    • 1

    查看当前所在分支。

    在这里插入图片描述

    6.4.2 修改

    比如在我们的当前目录tms-go-apihub新建文件夹和文件

    test_shengzm/hello.go

    6.4.3 add添加

    需要通过add命令添加新建的文件

    git add test_shengzm/
    
    • 1

    在这里插入图片描述

    直接添加文件夹会提示风险,可能会发生替换和覆盖

    也可以具体到具体的文件

    git add test_shengzm/hello.go
    
    • 1

    在这里插入图片描述

    6.4.4 commit

     git commit -m "第一次测试上传"
    
    • 1

    在这里插入图片描述

    6.5 git push

    git push 命令用于从将本地的分支版本上传到远程并合并。

    命令格式如下:

    git push <远程主机名> <本地分支名>:<远程分支名>如果本地分支名与远程分支名相同,则可以省略冒号:
    git push <远程主机名> <本地分支名>
    
    • 1
    • 2

    使用 git add PRTestgit commit ,git push等系列命令提交到小明的GitHub上的Repository(一定注意,是小明的)

    以下命令将本地的 shengzm-branch 分支推送到 **origin 主机的 main分支(**若无会新建此分支)。

    $ git push origin shengzm-branch
    
    • 1

    相等于:

    $ git push origin shengzm-branch:shengzm-branch
    
    • 1

    这里我们都用默认的就好,具体命令为:

    git push -u origin shengzm-branch:main
    
    • 1

    将本地shengzm-branch分支代码更新到origin远程主机的main分支上
    在这里插入图片描述

    push完成后,可以登陆网页查看上传情况,如图所示
    在这里插入图片描述

    6.6 PR(Pull Request)

    6.6.1 Comparing changes

    a.到小明的GitHub的Repository上点击Pull Requests,再点击New pull requests按钮;

    如下图:

    在这里插入图片描述

    b.进入Comparing changes界面。

    在这里插入图片描述

    6.6.2 Create pull request

    a.点击Create pull request按钮;
    在这里插入图片描述
    b.填写相关信息,在点击Create pull request按钮即可。

    在这里插入图片描述

    6.7 Merge

    这是老板的任务了。

  • 相关阅读:
    nodejs如何删除指定文件夹的图片
    Spring系列-SpringMvc父子容器启动原理解析
    LeetCode in Python 10. Regular Expression Matching (正则表达式匹配)
    药品销售数据查询的网站都有哪些?< 市场竞争调研>
    docker swarm 使用详解
    基础1:JS的原型和原型链究竟
    阿里云PAI主机网页访问测试
    计算机操作系统 第六章:输入输出系统(2)
    【大话设计模式】工厂方法模式
    第十一节:抽象类和接口【java】
  • 原文地址:https://blog.csdn.net/szm1234/article/details/125890223