Git学习笔记(第6章):GitHub操作(远程库操作)

news2024/11/14 20:06:21

目录

6.1 远程库操作

6.1.1 创建远程库

6.1.2 命名远程库

6.1.3 本地库推送到远程库(push)

6.1.4 远程库拉取到本地库(pull)

6.1.5 远程库克隆到本地库(clone)

6.2 团队内协作

6.3 跨团队协作

6.4 SSH免密登录


6.1 远程库操作

命令

作用

git remote -v

查看所有远程仓库的别名和地址

git remote add 远程仓库别名 远程仓库地址

给远程仓库起别名

git push 远程仓库别名/地址 本地仓库分支

将本地分支上的内容推送到远程仓库

git pull远程仓库别名/地址 远程仓库分支

将远程仓库分支上的最新内容拉取到本地仓库的当前分支,并进行合并

git clone 远程仓库地址

将远程仓库的内容克隆到本地

6.1.1 创建远程库

  • Step1:点击右上角的“+” → New repository

  • Step2:输入远程仓库名 → 选择远程仓库的类型 → 点击“Create Repository”
    • 1远程仓库名一般与本地仓库名保持一致
    • 2:由于不同用户的账号具有唯一性,因此不必担心远程仓库名与别人的远程仓库名冲突(即便相同也没有关系)。
    • 3:远程仓库的类型
      • Public公共库:所有用户都具有“读取”的权限(开源精神)
      • Private私有库:私有库的成员数量存在一定限制,超出人数限制将会收取一定费用。因此,如果需要搭建公司内部的代码托管中心,最好选择GitLab。

       至此,远程仓库创建完毕(此时远程仓库还未有代码)。一旦创建了远程仓库,就会看到2种不同协议的连接,均可指代远程仓库的位置:

  • HTTPS:https://github.com/DenverLiao/git-demo.git
  • SSH:git@github.com:DenverLiao/git-demo.git

6.1.2 命名远程库

基本语法

  • git remote -v:查看所有远程仓库的详细信息

远程仓库的别名(remote name) 与 远程仓库的URL  的对应关系

  • git remote add 远程仓库别名 远程仓库地址:给远程仓库起别名

案例实操

  • Step1:查看所有远程仓库的别名和地址
  • Step2:给远程仓库起别名
    • 注:远程仓库的别名一般与远程仓库的名字保持一致
  • Step3:再次查看所有远程仓库的别名和地址
    • 命名一次会出现两个别名
    • fetch可以使用该别名;push推送也可以使用该别名
    • fetch = clone克隆 + pull拉取

        创建远程仓库别名有几个重要的意义:

  • 简化命令行操作:别名可以简化命令行操作,而不是每次都输入完整的远程仓库URL,你只需要使用别名,这样可以提高效率并减少输入错误的可能性。
  • 提高可读性:别名可以是有意义的单词,而不是较长的URL。这样做可以使命令更易读、易懂,特别是在团队协作的环境中。
  • 隐藏具体实现细节:使用别名可以隐藏实际的远程仓库细节。如果远程仓库的URL发生变化,只需更新别名的指向,而不需要修改所有相关的本地仓库设置。
  • 提高可维护性:当你需要切换或更新远程仓库时,只需更改别名的指向而不需要修改整个代码库的远程URL。
  • 易于记忆:别名通常是简短且易于记忆的,这有助于快速进行操作而不必查找远程仓库的详细信息。

6.1.3 本地库推送到远程库(push)

基本语法

  • git push 远程仓库别名/地址 本地仓库分支
    • 注:需要指明将本地仓库的哪一个分支进行推送。

案例实操

要求:将本地分支master上的内容推送到远程仓库

  • Step1:分支切换

  • Step2:本地库推送到远程库
    • 1:由于GitHub服务器位于国外,因此对网络的要求较高(可能需要尝试多次)。
    • 2:两种登录方式(浏览器账号登录;口令登录)

  • Step3:查看远程仓库的变化
    • 可见,master分支上的内容已经推送到GitHub创建的远程仓库。

6.1.4 远程库拉取到本地库(pull)

问题引入

        成员1(大佬)完成代码编写并推送到远程仓库后,随后就到外地旅游了。然而,在旅游途中,公司来电表明该代码有些问题,想要其进行修改。此时,成员1(大佬)直接登录GitHub对远程仓库进行修改并提交。几天后,成员1(大佬)旅游回到公司,发现其本地库的代码(并不是最新版本)和远程库的代码并不完全一致(不同步)。因此,成员1(大佬)需要使用“pull”命令将远程库拉取到本地库。

基本语法

  • git pull 远程仓库别名/地址 远程仓库分支

案例实操

  • Step1:修改远程仓库代码,并提交远程仓库
    • 默认提交到远程库的master分支(Commit directly to the master branch)

  • Step2:远程库拉取到本地库

  • 执行“pull”命令,会完成如下操作:
    • 操作1:拉取代码
    • 操作2:提交本地库
    • 效果:本地库和远程库实现同步

6.1.5 远程库克隆到本地库(clone)

基本语法

  • git clone 远程仓库地址

案例实操

要求:成员2(新手)将成员1(大佬)的远程库克隆到自己的本地库

  • 准备工作:删除凭据管理器(由于此处只有一台电脑,因此需要此操作)

  • Step1:打开Git-Bash客户端

  • Step2:克隆代码
    • 1:由于公共库的“读”权限是公开的,因此克隆操作无需进行任何的登录操作

  • 2:克隆操作会自动初始化本地仓库

  • 3:克隆操作会自动给远程仓库起别名为“origin”

  • 执行“clone”命令,会完成如下操作:
    • 操作1:拉取代码
    • 操作2:初始化本地仓库
    • 操作3:创建别名

6.2 团队内协作

  • Step1成员1(大佬DenverLiao邀请成员2(新手Bigbeard-Liao
    • Step1.1:添加合作者

  • Step1.2:复制邀请函(本质为链接)
    • 邀请函:https://github.com/DenverLiao/git-demo/invitations

  • Step1.3:发送邀请函(可通过微信等方式将邀请函发送给成员2)
  • Step2成员2(新手Bigbeard-Liao接受成员1(大佬DenverLiao的邀请
    • Step2.1:成员2在浏览器地址栏访问收到的邀请函(链接)
    • 注:由于此处只有一台电脑,因此需要先退出成员1的账号,然后再登录成员2的账号,最后才能执行上述操作。

  • Step2.2:点击接受邀请

  • :完成上述操作后,成员2账号下可以看到该远程仓库。

  • Step3:成员2修改文件,并推送到远程仓库。
    • Step3.1:修改文件  →  添加暂存区  →  提交本地库

  • Step3.2:本地库推送到远程库

  • Step4:成员1(大佬)、成员2(新手)查看远程仓库

  • Step5:成员1(大佬)拉取远程仓库到本地仓库
    • 拉取前:成员1的本地库 ≠ 成员1的远程库 = 成员2的本地库
    • 拉取后:成员1的本地库 = 成员1的远程库 = 成员2的本地库

6.3 跨团队协作

Step1:fork(外援)

  • Step1.1:外援登录自己的账号

  • Step1.2:外援使用浏览器访问成员1的远程仓库地址(成员1需要提前将远程仓库的地址复制发给邀请跨团队协作的外援)

  • Step1.3:外援点击fork”按钮将(成员1的)远程库叉到(自己的)远程库

  • Step1.4:查看效果

 

Step2Step3:clone、push(外援)

  • 理论操作:远程库克隆到本地库 → 修改文件 → 添加暂存区 → 提交本地库 → 本地库推送到远程库
  • 简化操作:在线编辑fork过来的文件 → Commit changes

Step4:pull request(外援)

  • Step4.1:点击“Pull requests” → 点击“New pull request”

  • Step4.2:点击“Create pull request”

  • Step4.3:填入标题“title”和描述“description” → 再次点击“Create pull request”

Step5:审核(成员1)

  • Step5.1:查看Pull request请求

  • Step5.2:查看外援修改的代码

  • 注:如果成员1对代码存在疑问或给对方回复感谢,可以通过“Pull request → Conversation → Add a comment”进行聊天,讨论有关代码的相关内容(类似于聊天功能)

Step6:merge(成员1)

  • Step6.1:点击“Merge pull request”合并代码(若代码审核通过)

  • Step6.2:点击“Confirm merge”再次确认

  • Step6.3:点击“Code” → 点击“hello.txt” → 查看效果

Step7:pull(成员1)

  • Step7.1:查看拉取前的文件内容

  • Step7.2:远程库拉取到本地库

  • Step7.3:查看拉取后的文件内容

6.4 SSH免密登录

  • 问题引入:仔细观察,我们可以发现远程仓库中不仅有HTTPS链接(已讲解),还有SSH链接(未讲解),如下图所示。然而,未进行任何配置时,该SSH链接是无法使用的。
    • You don't have any public SSH keys in your GitHub account. You can add a new public key, or try cloning this repository via HTTPS.
    • 你的GitHub账户中没有任何的SSH公钥。你可以添加一个新的公钥,或尝试通过HTTPS链接克隆此仓库。

Step1:本地宿主机生成SSH秘钥对(公钥、私钥)

  • Step1.1:进入当前用户的家目录

  • Step1.2:输入命令ssh-keygen -t rsa -C *****@qq.com
    • ssh-keygen:SSH密钥生成器工具的命令
    • -t rsa: 指定要生成的密钥类型    RSA:非对称加密算法,常用于安全通信
    • -C *****@qq.com:在生成的密钥中添加注释,通常用于标识密钥的用途或所有者

  • Step1.3:连续点击3次“Enter”回车键

  • Step1.4:查看生成的SSH密钥对(其中私钥保存本地,公钥黏贴到GitHub)

Step2:GitHub设置SSH公钥

  • Step2.1:复制id_rsa.pub文件(公钥)内容
  • Step2.2:登录GitHub → 点击用户头像 → Settings → SSH and GPG keys → New SSH Key

  • Step2.3:命名公钥、黏贴公钥 → Add SSH Key

Step3:测试SSH免密登录

  • Step3.1:修改文件 → 添加暂存区 → 提交本地库

  • Step3.2:本地库推送到远程库(使用SSH链接实现免密登录)

  • Step3.3:查看远程库的代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1404434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(16)-Fiddler如何充当第三者,再识AutoResponder标签-上篇

1.简介 Fiddler充当第三者,主要是通过AutoResponder标签在客户端和服务端之间,Fiddler抓包,然后改包,最后发送。AutoResponder这个功能可以算的上是Fiddler最实用的功能,可以让我们修改服务器端返回的数据&#xff0c…

MySQL-SQL-DCL

DCL-介绍 DCL-管理用户 1、查询用户 2、创建用户 3、修改用户密码 4、删除用户 注意: DCL-权限控制 1、查询权限 2、授予权限 授予全部权限 3、撤销权限 注意:

vue3 常见的路由传参无刷新修改当前路由url带参

无刷新修改当前路由url带参 //tabs切换部分 <el-tabs v-model"activeName" class"demo-tabs" tab-click"handleClick"><el-tab-pane v-for"(item,index) in tagList" :label"item.title" :name"item.name…

基于springboot酒店预订系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 前端技术&#xff1a;AdminLTEjQueryvue.jselementuijsp 服务端技术&#xff1a;springbootmybatis 本系统功能包括&#xff1a; 一、…

展锐T618_虎贲T618紫光展锐安卓核心板规格参数

基于紫光展锐八核T618平台的纯国产化方案&#xff0c;采用了开放的智能Android操作系统&#xff0c;并集成了4G网络、2.5G5G双频WIFI(可支持1*1 MIMO)、BLUETOOTH近距离无线传输技术以及GNSS无线定位技术。用户可以根据特定场合的需求&#xff0c;选择合适的嵌入式ARM核心模块&…

司铭宇老师:二手房营销培训课程:二手房销售技巧和话术

二手房营销培训课程&#xff1a;二手房销售技巧和话术 在房地产市场中&#xff0c;二手房销售一直是一个挑战性极强的领域。由于面对的客户群体多样&#xff0c;房源条件各异&#xff0c;销售人员必须具备高超的销售技巧和精湛的话术能力。本文将通过实战案例分析&#xff0c;深…

手握中下牌型如何赢掼蛋?

中下牌型的特点&#xff1a;牌不是很好&#xff0c;炸弹少&#xff0c;但是牌型种类较多&#xff0c;并且有上手牌&#xff0c;适合配合对方&#xff0c;发动进攻。手握此类牌型&#xff0c;可采取协同进攻、全面防御、顺势突围三种方式来扭转双下局面。 一、协同进攻 此时应当…

Spark UI中 Shuffle Exchange 和 BroadcastExchange 中的 dataSize 值为什么不一样

背景 Spark 3.5 最近在看Spark UI 上的一些指标看到一个很有意思的东西, 相邻的Shuffle Exechange 和 BroadcastExechange 中的 datasize 居然不一样&#xff0c; 前者为 765KB, 后者为 64.5MB。差别还不少&#xff0c;中间就增加了一个 AQEShuffleRead 计划 结论 Shuffle E…

2023年春秋杯网络安全联赛冬季赛 Writeup

文章目录 Webezezez_phppicup Misc谁偷吃了外卖modules明文混淆 Pwnnmanagerbook Reupx2023 CryptoCF is Crypto Faker 挑战题勒索流量Ezdede 可信计算 Web ezezez_php 反序列化打redis主从复制RCE&#xff1a;https://www.cnblogs.com/xiaozi/p/13089906.html <?php c…

C++入门学习(十一)字符型

C中的字符型可以表示ASCII码中的所有字符&#xff0c;包括字母、数字、标点符号等。 ASCII码是一种用于编码字符的编码系统&#xff0c;它使用不同的数值来表示不同的字符。ASCII码使用7位或8位二进制数来表示每个字符&#xff0c;因此可以表示128或256个不同的字符。 在ASCI…

ubuntu使用docker compose一键部署项目

1、将前面手动部署的容器和镜像全部删除 docker rmi hmall (hmall镜像名) docker rmi image_id rmi 是删除多个 rm是删除一个 2、执行命令 docker compose up -d http://192.168.79.129:18080/search.html 访问安装成功&#xff01; 该ip是虚拟机ubuntu的ip 3、docker-compos…

【AI的未来 - AI Agent系列】【MetaGPT】6. 用ActionNode重写技术文档助手

文章目录 0. 前置推荐阅读1. 重写WriteDirectory Action1.1 实现WriteDirectory的ActionNode&#xff1a;DIRECTORY_WRITE1.2 将 DIRECTORY_WRITE 包进 WriteDirectory中 2. 重写WriteContent Action2.1 思考重写方案2.2 实现WriteContent的ActionNode2.3 改写WriteContent Act…

【Kafka】开发实战和Springboot集成kafka

目录 消息的发送与接收生产者消费者 SpringBoot 集成kafka服务端参数配置 消息的发送与接收 生产者 生产者主要的对象有&#xff1a; KafkaProducer &#xff0c; ProducerRecord 。 其中 KafkaProducer 是用于发送消息的类&#xff0c; ProducerRecord 类用于封装Kafka的消息…

机器学习_正则化、欠拟合和过拟合

文章目录 正则化欠拟合和过拟合正则化参数 正则化 机器学习中的正则化是在损失函数里面加惩罚项&#xff0c;增加建模的模糊性&#xff0c;从而把捕捉到的趋势从局部细微趋势&#xff0c;调整到整体大概趋势。虽然一定程度上地放宽了建模要求&#xff0c;但是能有效防止过拟合…

【GitHub项目推荐--一个语音机器人项目】【转载】

推荐一个腾讯大佬开源的语音对话机器人&#xff1a;wukong-robot &#xff0c;悟空机器人在 GitHub 上斩获 3.2K 的 Star。 这是一个简单灵活的中文语音对话机器人项目&#xff0c;目的是让中国的开发者也能快速打造个性化的智能音箱&#xff0c;同时&#xff0c;该项目还是第…

科技云报道:金融大模型落地,还需跨越几重山?

科技云报道原创。 时至今日&#xff0c;大模型的狂欢盛宴仍在持续&#xff0c;而金融行业得益于数据密集且有强劲的数字化基础&#xff0c;从一众场景中脱颖而出。 越来越多的公司开始布局金融行业大模型&#xff0c;无论是乐信、奇富科技、度小满、蚂蚁这样的金融科技公司&a…

【XR806开发板试用】系列之一 - Linux环境下Ubuntu完全开发流程

前言 为了让极术社区开发者体验搭载安谋科技STAR-MC1处理器的面向IoT领域的全志XR806开发板&#xff0c;极术社区联合全志在线开发者社区共同推出XR806开发板免费试用活动。 极术社区特准备了200块XR806开发板作为2022年社区新年活动&#xff0c;申请的人数有600多&#xff0c…

���恒峰|配网行波型故障预警定位装置:电力系统的守护神

&#xfffd;&#xfffd;&#xfffd;在电力系统中&#xff0c;设备的正常运行对于保障供电至关重要。而配网行波型故障预警定位装置就是电力系统的守护神&#xff0c;它能够实时监测设备状态&#xff0c;提前发现故障&#xff0c;确保电力供应的稳定。本文将详细介绍配网行波…

【前端可视化】postcss-px-to-viewport 适配怎么限制最大宽度?使用 postcss-mobile-forever

需求原因 自己用 nuxt3 写官网发现用 postcss-px-to-viewport 这个插件虽然能够实现基于 vw 的响应式&#xff0c;但是无法做到限制宽度&#xff0c;比如设计稿 1920p&#xff0c;我只想让最大缩放比例为 1920p&#xff0c;不能超过&#xff0c;就无法实现了。 方案参考 纯 c…

记一次低级且重大的Presto运维事故

本文纯属虚构&#xff0c;旨在提醒各位别犯类似低级错误。 如有雷同&#xff0c;说的就是你&#xff01; 文章目录 前言事件回顾后续总结 前言 首先&#xff0c;要重视运维工作和离职人员的交接工作&#xff0c;这个不必多说。一将无能&#xff0c;累死三军&#xff01; 接下来…