当前位置:   article > 正文

GitHub配置账号Pull Request更新代码分支_github pull upstream

github pull upstream

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

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.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

这是老板的任务了。

6.8 远端更新同步

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

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

在这里插入图片描述

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

git fetch upstream
git merge upstream/main

  • 1
  • 2
  • 3

在这里插入图片描述

6.8.3 push

同步最新代码后,又是一次再次更改和提交的循环流程

7 VSCode开启git可视化新篇章

作为一名有节操的程序员,当然不满足全部的命令操作,缺少了科技的味道

既然我们有VSCode 这种神级工具,既然也要用得上

当然下面的操作都是在第6章节操作进行过定义后才可能会有的选项和操作

7.1 准备工作

首先我们打开VSCode,点击左侧的分享按钮,这就是我们的git

然后打开源代码管理存储库
在这里插入图片描述

7.2 选择需要拉取或推送的存储库

准备我们要拉取pull和推送push的远程分支

我们先来查看一下已经保存了的分支

如果存在我们自己的远程分支仓库和老板的远程分支仓库,那么直接按需点击操作就可以了
在这里插入图片描述

如果没有,直接通过可视化的创建即可,具体按钮位置如下
在这里插入图片描述

7.3 拉取最新代码

开发前首先拉取老板GitHub那里的最新代码

所以我们要切换到老板的远程分支
在这里插入图片描述
切换后会自动拉取更新,如果没有,手动选择拉取即可
在这里插入图片描述

7.4 提交本地修改代码到自己的远程仓库

更新之后就可以按照需求进行代码的修改

修改完成之后就是我们之前的commit add push pull等操作了

这也是vscode优势的地方

我们一定确认,切换到了我们自己的远程仓库,不然一个push pull可能就直接到老板那里了(都是泪
在这里插入图片描述
假设我们进行了修改,新建了一个文件
在这里插入图片描述
然后在git管理中就可以看到我们的更改
在这里插入图片描述
我们把需要提交的更改,点击暂存按钮,相当于我们之前的add

消息中备注修改,相当于我们之前的commit添加备注消息
在这里插入图片描述

然后点击提交即可完成操作

提交中有很多可选项,可以提交推送,就会直接把本地更新代码到自己的远程仓库

点击提交和同步会先从远程进行拉取然后再进行推送更新到自己的远程仓库

在这里插入图片描述
过程中会出现确认按钮
在这里插入图片描述
提交或者同步之后,我们就可以看到自己远程仓库的更新了
在这里插入图片描述
完结,撒花~

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号