Git 远程仓库之Github

目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。

目前最出名的代码托管平台是Github,我们将使用了 Github 作为远程仓库。

在这里插入图片描述


添加远程库

要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,命令格式如下:

git remote add [shortname] [url]

以 Github 为例作为远程仓库,如果你没有 Github 可以在官网注册。

由于你的本地 Git 仓库和 GitHub 仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息:

Q:为什么 GitHub 需要SSH Key呢?

A:因为 GitHub 需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而 Git 支持 SSH 协议,所以,GitHub 只要知道了你的公钥,就可以确认只有你自己才能推送。

使用以下命令生成 SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

your_email@youremail.com 为你在 Github 上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。

成功的话会在 ~/ 下生成 .ssh 文件夹,里面有**id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub**是公钥,可以放心地告诉任何人。打开 id_rsa.pub,复制里面的 key

$ ssh-keygen -t rsa -C "youremail@example.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/tianqixin/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase):    # 直接回车
Enter same passphrase again:                   # 直接回车
Your identification has been saved in /home/keduo/.ssh/id_rsa.
Your public key has been saved in /home/keduo/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:MDKVidPTDXIQoJwoqUmI4LBAsg5XByBlrOEzkxrwARI youremail@example.com
The key's randomart image is:
+---[RSA 3072]----+
|E*+.+=**oo       |
|%Oo+oo=o. .      |
|%**.o.o.         |
|OO.  o o         |
|+o+     S        |
|.                |
|                 |
|                 |
|                 |
+----[SHA256]-----+

回到 github 上,进入 Account => Settings(账户配置)。

在这里插入图片描述

左边选择 SSH and GPG keys,然后点击 New SSH key 按钮,title 设置标题,可以随便填,粘贴在你电脑上生成的 key。

使用命令cat /home/home/keduo/.ssh/id_rsa.pub查看生成的 key

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

添加成功后界面如下所示

在这里插入图片描述

为了验证是否成功,输入以下命令:

$ ssh -T git@github.com
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes                   # 输入 yes
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access. # 成功信息

以下命令说明我们已成功连上 Github。

之后登录后点击" New repository " 如下图所示:

在这里插入图片描述

之后在在Repository name 填入 keduo(远程仓库名) ,其他保持默认设置,点击"Create repository"按钮,就成功地创建了一个新的Git仓库:

在这里插入图片描述

创建成功后,显示如下信息:

在这里插入图片描述

以上信息告诉我们可以从这个仓库克隆出新的仓库,也可以把本地仓库的内容推送到GitHub仓库。

现在,我们根据 GitHub 的提示,在本地的仓库下运行命令:

$ mkdir keduo-origin                         # 创建测试目录
$ cd keduo-origin/                           # 进入测试目录
$ echo "# CSDN@柯哆 Git" >> README.md        # 创建 README.md 文件并写入内容
$ ls                                        # 查看目录下的文件
README.md
$ git init                                  # 初始化
$ git add README.md                         # 添加文件
$ git commit -m "添加 README.md 文件"        # 提交并备注信息
[master (root-commit) 0205aab] 添加 README.md 文件
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

# 提交到 Github
$ git remote add origin https://github.com/username/keduo.git

# 把本地库的所有内容推送到 Github
$ git push -u origin master

此时会要你输入Username for ‘https://github.com’: password

username为注册时设置的用户名,但在这里的password并不是注册github时设置的密码

温馨提示:输入password时页面不会有任何反应

需要做的事情是:

打开github.com->Settings->Developer settings -> Persional access tokens -> generate new token

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建新token后,将token复制,保存下来,token相当于你的密码

第一次推送会要求填写github账户名和密码,以后就默认使用该账号和密码。

如果你以后修改了github密码,可以用一下语句清除信息

$ git config --global --unset credential.helper

配置好后使用以下命令缓存密码

git config --global credential.helper store
1

之后的操作就不需要输入密码了

请千万注意,把上面的username替换成你自己的 GitHub 账户名,否则,你在本地关联的就是别人的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在别人的账户列表中。

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

接下来我们返回 Github 创建的仓库,就可以看到文件已上传到 Github上


查看当前的远程库

要查看当前配置有哪些远程仓库,可以用命令:

git remote

实例

$ git remote
origin
$ git remote -v
origin    git@github.com:username/keduo.git (fetch)
origin    git@github.com:username/keduo.git (push)

执行时加上 -v 参数,你还可以看到每个别名的实际链接地址。


提取远程仓库

Git 有两个命令用来提取远程仓库的更新。

1、从远程仓库下载新分支与数据:

git fetch

该命令执行完后需要执行 git merge 远程分支到你所在的分支。

2、从远端仓库提取数据并尝试合并到当前分支:

git merge

该命令就是在执行 git fetch 之后紧接着执行 git merge 远程分支到你所在的任意分支。

在这里插入图片描述

假设你配置好了一个远程仓库,并且你想要提取更新的数据,你可以首先执行 git fetch [alias] 告诉 Git 去获取它有你没有的数据,然后你可以执行 git merge [alias]/[branch] 以将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支。

实战

我们先在 Github 上点击" README.md" 并在线修改它:

在这里插入图片描述

然后我们在本地更新修改。

$ git fetch origin 
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
展开对象中: 100% (3/3), 922 字节 | 922.00 KiB/s, 完成.
来自 https://github.com/username/keduo
   5b86d1f..fbf99e2  master     -> origin/master

以上信息"5b86d1f..fbf99e2 master -> origin/master" 说明 master 分支已被更新,我们可以使用以下命令将更新同步到本地:

$ git merge origin/master 
更新 5b86d1f..fbf99e2
Fast-forward
 README.md | 1 +
 1 file changed, 1 insertion(+)

查看 README.md 文件内容:

$ cat README.md 
# CSDN@柯哆 Git
Git 教程

推送到远程仓库

推送你的新分支与数据到某个远端仓库命令:

git push [alias] [branch]

以上命令将你的 [branch] 分支推送成为 [alias] 远程仓库上的 [branch] 分支,

实战

$ touch keduo-test.txt      # 添加文件
$ git add keduo-test.txt 
$ git commit -m "推送到远程仓库"
[master e320f0e] 推送到远程仓库
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 keduo-test.txt

$ git push origin master    # 推送到 Github

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

重新回到 Github 仓库,就可以看到文件已经成功提交了


删除远程仓库

删除远程仓库你可以使用命令:

git remote rm [别名]

使用前,建议先用git remote -v查看远程库信息:

$ git remote -v
origin  git@github.com:username/keduo.git (fetch)
origin  git@github.com:username/keduo.git (push)

此处的“删除”其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动。要真正删除远程库,需要登录到 GitHub ,在后台页面找到删除按钮再删除。

实战

$ git remote -v
origin	https://github.com/username/keduo.git (fetch)
origin	https://github.com/username/keduo.git (push)

# 删除仓库 origin
$ git remote rm origin
$ git remote -v

提示:

GitHub给出的地址不止一个,还可以用https://github.com/username/keduo.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议

使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https

详细教程:
https://download.csdn.net/download/2301_79768594/88894033

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#与VisionPro联合开发——单例模式

单例模式 单例模式是一种设计模式,用于确保类只有一个实例,并提供一个全局访问点来访问该实例。单例模式通常用于需要全局访问一个共享资源或状态的情况,以避免多个实例引入不必要的复杂性或资源浪费。 Form1 的代码展示 using System; usi…

关于V5版本的echarts的引导线标签文字存在描边问题

1.如果存在描边:(如图所示,炒鸡难受好吧,也不知道官方为什么这样初始化) 2.只需在series的label中配置color:#FFF即可

ES入门二:文档的基本操作

索引管理 创建索引 删除索引 文档管理 创建文档 如果有更新需求,使用第一种如果有唯一性校验,使用第二种如果需要系统给你创建文档Id,使用第三种 (这个性能更好) 相比第一种,第三种的写入效率更高&#xf…

2.00001《Postgresql内幕探索》走读 之 查询优化

文章目录 1.1 概述1.1.1 Parser1.1.2 分析仪/分析器1.1.3 Rewriter1.1.4 Planner和Executer 1.2 单表查询的成本估算1.2.1 顺序扫描1.2.2 索引扫描1.2.3 排序 1.3 .创建单表查询的计划树1.3.1 预处理1.3.2 获取最便宜的访问路径示例1示例二 1.3.3 创建计划树示例1例二 1.4 EXEC…

appium2的一些配置

appium-desktop不再维护之后,需要使用appium2。 1、安装appium2 命令行输入npm i -g appium。安装之后输入appium或者appium-server即可启动appium 2、安装安卓/ios的驱动 安卓:appium driver install uiautomator2 iOS:appium driver i…

《汇编语言》 第3版 (王爽)实验6解析

第7章 实验6解析 (1).编程,完成问题7.9中的程序。 问题7.9 编程,将datasg段中每个单词的前4个字母改为大写字母。 assume cs:codesg,ss:stacksg,ds:datasgstacksg segment ;开辟了栈段空间,容量为16个字节dw 0,0,0,0…

基于java springboot+redis网上水果超市商城设计和实现以及文档

基于java springbootredis网上水果超市商城设计和实现以及文档 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留…

Oracle 如何将txt文件中的数据导入数据库

使用文本导入器,可以将ASCII文件导入数据库。支持大多数面向行的格式,如逗号和制表符分隔的字段。导入程序将尝试自动确定文件格式,因此大多数时候您不会抰 需要定义任何内容,只需选择文件,选择一个表,然后…

爬虫案例二

第一步电影天堂_免费在线观看_迅雷电影下载_电影天堂网 (dytt28.com)电影天堂_电影下载_高清首发 (dytt89.com)电影天堂_免费在线观看_迅雷电影下载_电影天堂网 (dytt28.com) 打开这个网站 我直接打开 requests.exceptions.SSLError: HTTPSConnectionPool(hostwww.dytt28.com…

聚观早报 | 2024款腾势D9将发布;岚图汽车2月销量

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 3月2日消息 2024款腾势D9将发布 岚图汽车2月销量 苹果Vision Pro防汗新专利 真我12 Pro正式开售 Redmi K70/Pro…

基于R语言和iris数据集实现随机森林模型及测试应用

基于R语言和iris数据集实现随机森林模型及测试应用 测试应用R代码 #加载随机森林模型库 > library("randomForest") #加载iris数据集 > data(iris) > head(iris)# 设置训练数据和标签 t_data <- iris[, -5] t_labels <- iris[, 5] # 训练随机森…

【Redis】Redis入门

文章目录 一、Redis简介二、Redis的特性三、Redis的使用场景四、Redis可以做什么五、Redis不可以做什么六、CentOS7安装Redis5七、Redis通用命令 一、Redis简介 Redis 是⼀种基于 键值对&#xff08;key-value&#xff09; 的NoSQL数据库&#xff0c;与很多键值对数据库不同的…

AI大模型或将改变世界格局,你准备好了吗?

AI大模型的出现将极大地改变世界格局。这一技术的发展已经迅猛&#xff0c;正在渗透到各个领域&#xff0c;成为推动社会进步的重要力量。AI大模型可以帮助人们解决各种难题&#xff0c;提高生产效率&#xff0c;改善生活质量。但与此同时&#xff0c;也存在着一些隐忧和挑战。…

(2024,LayerDiffusion,图层生成与混合,SD,LoRA)使用潜在透明度的透明图像层扩散

Transparent Image Layer Diffusion using Latent Transparency 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 2. 相关工作 2.1 将图像隐藏在扰动内 2.2 扩散概率模型和潜在…

功能强大使用简单的截图/贴图工具,PixPin

一、下载链接 PixPin 截图/贴图/长截图/文字识别/标注 | PixPin 截图/贴图/长截图/文字识别/标注 (pixpinapp.com) 二、功能 截图/贴图/长截图/文字识别/标注 三、安装教程 根据提示安装即可&#xff1a; 四、快捷键 1.软件自带快捷键&#xff08;右击PixPin查看 &#xff09…

kuangbin专题——简单搜索

1.棋盘问题&#xff08;dfs&#xff09; 思路 1.dfs 参数里枚举每一行&#xff0c;然后在里面弄两个分支&#xff0c;选或者不选&#xff0c;选的话就枚举这一行的所有元素 2.注意最后一行要先判断&#xff0c;再返回 #include<iostream> using namespace std; const i…

uniapp制作--进步器的选择

介绍&#xff1a; 进步器的选择,一般用于商城购物选择物品数量的场景 注意&#xff1a;该输入框只能输入大于或等于0的整数 效果展示&#xff1a; 代码展示&#xff1a; 以下是一个简单的购物车页面示例&#xff0c;包括选择商品和显示数量的功能&#xff1a; 在这个示例中…

docker 安装 Jenkins

一、安装 jenkins 中文文档&#xff1a; https://www.jenkins.io/zh/doc/book/installing/#docker jenkins 提供了详细的安装方式和步骤&#xff0c;这里咱们使用 docker 进行安装 根据文档上的命令&#xff0c;自己修改如下&#xff1a; docker run \ -u root \ --name jenki…

三八妇女节送礼推荐:送给她的五款超值好物,绝不踩雷!

随着三八妇女节的临近&#xff0c;我们开始思考如何向身边的女性表达我们的尊重和关爱。这个特殊的节日不仅是对女性贡献的认可&#xff0c;更是展示我们关怀与感激之情的绝佳时机。在众多礼物中&#xff0c;如何挑选一份既能体现心意又实用的礼品呢&#xff1f;为了让您在这个…

Win UI3开发笔记(八)多语言切换

要实现的目标&#xff1a;checkbox选定什么语言&#xff0c;当前应用程序的文字就是这一门语言。 步骤如下&#xff1a; 参考现有的一个程序的代码&#xff0c;先定义资源文件。 如果只有一个按钮、一个文本、一个列表框的话 新建String 在这个文件夹下定义en-us&#xff0c;z…