Git&GitHub——GitHub部分相关笔记

GitHub

在版本控制系统中,大约90%的操作都是在本地仓库中进行的:暂存、提交,查看状态或者历史记录等等,除此之外,如果仅仅只有你一个人在这个项目里工作,你永远没有机会需要设置一个远程仓库。

只有当你需要和你的开发团队共享数据时,设置一个远程仓库才有意义。你可以把它想象成一个“文件管理服务器”,利用这个服务器可以与开发团队的其他成员进行数据交换。

注册

  • 访问[GitHub][https://github.com/] 首页,点击Sign up连接。(注册)
    在这里插入图片描述

多人协作开发流程

  • A在自己的计算机中创建本地仓库
  • A在GitHub中创建远程仓库
  • A将本地仓库推送到远程仓库
  • B克隆远程仓库到本地进行开发
  • B将本地仓库中开发的内容推送到远程仓库
  • A将远程仓库中的最新内容拉到本地
    在这里插入图片描述
    在这里插入图片描述

创建远程仓库

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

本地仓库推送到GitHub远程仓库

  • 创建好的仓库首页面
    在这里插入图片描述

  • git push 远程仓库地址 分支名称
    在这里插入图片描述

  • git push 远程仓库地址别名 分支名称
    在这里插入图片描述

  • git push -u 远程仓库地址别名 分支名称

    • -u 记住推送地址及分支,下次推送只需要输入git push即可

在这里插入图片描述

  • git remote add 远程仓库地址别名 远程仓库地址(为远程仓库地址添加别名)
    在这里插入图片描述

GitHub远程仓库克隆到本地仓库

克隆远端数据仓库到本地:git clone 仓库地址

克隆不需要身份验证

B推送到远程仓库

A邀请B成为项目开发者,B才有权推送到远程仓库

  • 邀请过程
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

复制邀请链接发给程序员B
在这里插入图片描述

将A发送的邀请链接复制粘贴到浏览器打开,选择接受邀请
在这里插入图片描述

已获得仓库操作权限
在这里插入图片描述

B推送到远程仓库:git push 仓库别名称 分支名称

A将最新版本更新到本地仓库(拉取操作)

克隆仓库

克隆远端数据仓库到本地:git clone 仓库地址

拉取远程仓库中的最新版本

拉取远程仓库中的最新版本:git pull 远程仓库地址 分支名称

拉取操作属于读操作,GitHub不需要身份验证,所以可以直接进行操作

git pull 命令和 git clone命令区别:git pull是在已经有本地仓库的基础上进行的,git clone是完全克隆远程仓库,实在没有本地仓库的基础上进行的,git clone只需要在第一次加入项目开发的时候用到,在克隆完成以后就不再需要使用这个命令了。在后续操作中,如果要拉取远程仓库中的内容,使用git pull命令就可以了。

如果远程仓库版本高于本地仓库版本,此时本地仓库是不能向远程仓库中进行提交的,本地仓库必须先要拉取远程仓库中的内容到本地,然后再向远程仓库中进行提交。

解决冲突

再多人同时开发同一个项目的时候,如果两个人修改了同一个文件的同一个地方,就会发生冲突,冲突需要人为解决。

冲突的发生:只有先向远程仓库进行推送的人才能推送成功,后推送的人是推送不上去的,因为第一个人已经向远程仓库中提交了版本,第二个人的本地仓库中并没有这个版本,导致远程仓库版本高于本地仓库版本,所以推送不上去,第二个人需要将远程仓库中的版本拉取到本地,但是由于两个人修改了同一个文件的同一个地方,所以导致冲突的发生。

冲突的解决:冲突发生的时候,工具是不能帮助我们决定怎么做的,需要人为解决,所以第二个人需要在本地仓库中先把冲突解决掉,然后再向远程仓库中提交才能提交成功。

制造冲突

程序员A
  • 程序员A修改index.html文件
    在这里插入图片描述

  • 将修改的文件添加到暂存区中并进行提交
    在这里插入图片描述

  • 推送到远程仓库中
    在这里插入图片描述

程序员B
  • 程序员B修改index.html文件(与A修改同一地方)
    在这里插入图片描述

  • 将修改的文件添加到暂存区中并进行提交
    在这里插入图片描述

  • 推送到远程仓库(由于与A程序员修改同一位置,所以发生冲突,B程序员推送不上去)
    在这里插入图片描述

解决冲突

  • B程序员将最新版本(即A程序员修改并提交的版本)拉取到本地
    在这里插入图片描述
  • 当前冲突的区域发生变化
    在这里插入图片描述
  • 把冲突标记删除,把文件改成我们需要的内容并进行保存
    在这里插入图片描述
  • 将做出的修改添加到暂存区中并提交到本地仓库
    在这里插入图片描述
    在这里插入图片描述
  • 把本地仓库推送到远程
    在这里插入图片描述

跨团队协作

GitHub除了支持团队协作以外,还支持非团队协作,即使你不是团队成员,也有方法想其他人的git仓库中提交代码,只不过你提交的代码是需要被审核的,只有审核通过了才有可能生效。

  • 该功能应用场景:比如说要完成一个网页效果,但是这个效果写出来要花费一些时间,你不想花费这个时间,于是你在GitHub中找到了一个正好能够实现这个效果的库,但是在使用过程当中,发现这个库的功能并不完善,然后你讲这个库进行改写完善,此时你就可以将你完善的代码提交给原仓库的作者,如果原仓库作者认为你提交的代码非常有价值,就会将你写的合并到他的仓库当中。

基本流程

  • 程序员C fork仓库
  • 程序员C将仓库克隆在本地
  • 程序员C将仓库推送到远程
  • 程序员C发去pull request
  • 原仓库作者审核
  • 原仓库作者合并代码

详细过程

  • 将A程序员的仓库fork一份到自己的GitHub账户中,fork之后该仓库属于自己
    在这里插入图片描述

  • 克隆仓库到本地
    在这里插入图片描述

  • 在本地对仓库进行修改
    在这里插入图片描述

  • 将做出的修改添加到本地仓库中
    在这里插入图片描述

  • 修改完之后再将本地仓库推送到当前这个远程仓库中(自己复制的那个)
    在这里插入图片描述

  • 向原作者发送代码修改的请求
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 原作者的仓库页面会收到相应请求
    在这里插入图片描述
    在这里插入图片描述

  • 对其做出的修改进行审核
    在这里插入图片描述
    在这里插入图片描述

  • 将其修改的代码合并到原作者仓库中
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

ssh免登陆

https协议仓库地址:https://github.com/yoliuchn/git-demo.git
在这里插入图片描述

ssh协议设置

  • 生成秘钥:ssh-keygen(一路回车)
    在这里插入图片描述

  • 秘钥存储目录C:User\用户\\.ssh
    在这里插入图片描述

  • 公钥:id_rsa.pub(公钥放在GitHub服务器中)

    • 通过代码编辑器打开复制该字符串
      在这里插入图片描述

    • 在GitHub进行设置
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    • 密码验证
      在这里插入图片描述

    • 添加成功
      在这里插入图片描述

  • 私钥名称:id_rsa(私钥保留在自己的电脑的对应目录当中)

使用ssh协议对仓库进行操作

  • 获取ssh地址
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 将本地仓库推送到远程
    在这里插入图片描述

GIT忽略清单

作用:告诉git哪些文件不需要它进行管理

将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会自动忽略这些文件。

  • git忽略清单文件名称:.git(命名格式——.xxx)
    在这里插入图片描述

  • 将工作目录中的文件全部添加到暂存区:git add .
    在这里插入图片描述
    在这里插入图片描述

为远程仓库添加详细说明

只需要在项目根目录下创建一个名字为readme.md的文件,这个文件的内容会自动显示在仓库文件列表的下方。

  • 创建readme.md文件

  • 添加到本地仓库中
    在这里插入图片描述

  • 推送到远程仓库
    在这里插入图片描述

只有将readme.md文件推送到远程仓库,才能在仓库文件列表下方看到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值