Git 使用SSH登陆

一、SSH介绍

         SSH连接相比于HTTP连接会简单一点,因为SSH连接通过了私钥与公钥进行身份认证,这样就不需要像HTTP一样,每次clone或者操作仓库都需要输入密码

        其中私钥和密钥是需要在自己电脑上生成的,通过命令即可生成一个私钥和一个密钥,这两个是成对出现的,一般会生成在你电脑C盘的用户目录下,有一个.ssh文件夹,如果看不到这个文件夹,打开文件管理器的显示隐藏文件功能,一般里边会有两个文件,一个是公钥,一个是私钥,后缀带.pub的是公钥

        公钥需要放到远端服务器的,私钥一般就保存在电脑上即可,不要泄露给别人。

        如果你要操作的仓库没有公钥,你是不能对这个仓库进行操作的,必须把你生成的公钥添加进去,下面会讲如何操作。

二、本地创建SSH密钥

        1、先在本地打开git bash,然后输入如下命令按三次回车,命令里的邮箱就写你远端仓库的邮箱即可

ssh-keygen -t rsa -C "远端仓库邮箱"

        2、 按完三次回车后,即可进入C盘用户目录,找到.ssh文件夹,打开里边后缀为.pub的文件,复制里边内容

        3、打开远端仓库,这里以gitee为例,登陆后点击右上角,找到账号设置,进入设置后找到SSH公钥,把刚才复制的粘贴进去,点击确定,就完成了公钥添加。

        注意:远端仓库分为仓库密钥和个人密钥,仓库密钥只能克隆和拉取仓库,不能推送仓库,也就是不能对仓库进行修改,而个人密钥是可以对仓库进行推送的。

        如果设置的是仓库密钥,在推送的时候会提示权限不够。

        4、测试SSH登陆,打开Git bash,输入如下命令测试,中间会让输入一次yes,如果SSH密钥设置成功,即可看到会输出You've successfully authenticated字样。

ssh -T git@gitee.com

三、通过SSH克隆仓库

3.1 本地没有仓库

        1、找到一个工作空间,最好在一个空文件夹下,然后打开Git bash,输入如下命令即可克隆仓库,后面接的地址一定是SSH地址

git clone 远端SSH地址

        2、切换到需要操作的分支,一般clone下来的仓库都是有很多个分支的,使用下面命令查看所有分支,如果是新clone的仓库分支是一样的。

# 查看远端仓库所有分支
git branch -r
# 查看远本地仓库所有分支
git branch -a

        使用下面命令切换对应分支:

 git checkout 需要操作的分支名字

        如果只有一个master分支,想再创建一个新分支,使用如下命令,再哪个分支上使用checkout命令,就是基于哪个分支创建的新分支。

git checkout -b 新分支名字

        如果想删除某个分支,使用下面命令

        注意必须处于别的分支才能删除这个分支,不能再本分支删除本分支

git branch -d 要删除的分支名字

        如果想删除远端分支,可以直接再远端界面操作,也可以使用下面命令

git push origin --delete 远端要删除分支名字

3.2 本地有仓库

        1、添加远端仓库        

        如果本地有一个仓库,使用如下命令添加远端仓库

git remote add origin 远端仓库SSH地址

        2、拉取远端仓库

        使用下面命令拉取远端仓库,会把远端仓库的所有分支全部拉取下来

git pull

        如果只是想拉取远端仓库的某一个分支,使用如下命令 

git pull origin 要拉取的远端仓库分支名

        如果本地仓库是一个空仓库,使用上面命令会把拉取下来的东西放到master分支,如果想跟远端仓库名字一样。需要使用如下命令,这里本

git push origin bee本地分支名字:远端仓库分支名字

地分支名字也写成远端分支名字,为后面上传减少麻烦

git pull origin 远端分支名字:本地分支名字

        注意:如果你本地是一个空仓库,拉取某一个仓库后,你的分支名就是master,而不是你远端仓库的分支名,这个后面推送的时候可能推送不上去,后面会讲

        空仓库的master分支实际是不存在的,也不能上来直接使用 git branch命令创建新分支,但是可以使用git checkout -b 命令直接创建新分支,其实页没有创建新分支,只是把默认的master改为了你写的分支名字

        但是如果你本地已经有分支了,就不会出现这种情况,只需要拉取完仓库后,切换到对应的分支即可,然后再操作,或者在对应分支的基础上再创建新的分支

        3、推送仓库

        使用如下命令即可把本地仓库推动到远端仓库

        如果当前分支是新创建的分支,就会在云端上传一个新的分支

git push origin 远端仓库分支名字

        注意:如果前面说的,你本地分支名字跟远端仓库分支名字不同,就需要使用如下命令

git push origin 本地分支名字:远端仓库分支名字

        4、合并分支

        首先需要切换到你要合并的分支,然后使用如下命令合并

git merge 要合并到当前分支的分支名字

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openharmony中hilog实证记录说明(3.1和5.0版本)

每次用这个工具hilog都有一些小用法记不清,需要花一些时间去查去分析使用方法,为了给丰富多彩的生活留出更多的时间,所以汇总整理共享来了,它来了它来了~~~~~~~~~ 开始是想通过3.1来汇总的,但实际测试发现openharmony…

UDP 协议

文章目录 UDP 协议简介数据包格式UDP 通信流程抓包分析参考 本文为笔者学习以太网对网上资料归纳整理所做的笔记,文末均附有参考链接,如侵权,请联系删除。 UDP 协议 UDP 是一种面向无连接的传输层协议,属于 TCP/IP 协议簇的一种。…

数据结构之链表(双链表)

目录 一、双向带头循环链表 概念 二、哨兵位的头节点 优点: 头节点的初始化 三、带头双向链表的实现 1.双链表的销毁 2.双链表的打印 3.双链表的尾插和头插 尾插: 头插: 4.双链表的尾删和头删 尾删: 头删: …

内存取证之windows-Volatility 3

一,Volatility 3下载 1.安装Volatility 3。 要求:python3.7以上的版本,我的是3,11,这里不说python的安装方法 使用 pip 安装 Volatility 3: pip install volatility3 安装完成后,验证安装: v…

Unity的JSON工具类+LitJson的引入及使用

C#使用JSON数据 数据存储(序列化):将C#的数据格式,转化为JSON字符串,存储或传输 数据使用(反序列化):将JSON字符串中存储的数据,转化为C#可用的数据格式,实现…

WX小程序

下载 package com.sky.utils;import com.alibaba.fastjson.JSONObject; import org.apache.http.NameValuePair; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.Cl…

MyBatis 中 #{} 和 ${} 的区别详解

目录 1. #{} 和 ${} 的基本概念 1.1 #{} 1.2 ${} 2. #{} 和 ${} 的工作原理 2.1 #{} 的工作原理 2.2 ${} 的工作原理 3.共同点:动态 SQL 查询 4. 区别:处理方式和适用场景 4.1 处理方式 4.2 适用场景 (1)#{} 的适用场景…

【蓝桥杯速成】| 10.回溯切割

前面两篇内容我们都是在做有关回溯问题的组合应用 今天的题目主题是:回溯法在切割问题的应用 题目一:分割回文串 问题描述 131. 分割回文串 - 力扣(LeetCode) 给你一个字符串 s,请你将 s 分割成一些 子串&#xff…

数据结构之双向链表-初始化链表-头插法-遍历链表-获取尾部结点-尾插法-指定位置插入-删除节点-释放链表——完整代码

数据结构之双向链表-初始化链表-头插法-遍历链表-获取尾部结点-尾插法-指定位置插入-删除节点-释放链表——完整代码 #include <stdio.h> #include <stdlib.h>typedef int ElemType;typedef struct node{ElemType data;struct node *next, *prev; }Node;//初化链表…

开源视频剪辑工具,无损编辑更高效

LosslessCut 是一款基于 FFmpeg 开发的跨平台开源视频剪辑工具&#xff0c;致力于无损处理音视频文件。它无需重新编码即可完成剪切、合并、轨道编辑等操作&#xff0c;极大地保留了原始文件的质量&#xff0c;特别适合处理大体积视频&#xff0c;如无人机拍摄素材或长时录制内…

Java:Apache HttpClient中HttpRoute用法的介绍

当使用Apache HttpClient组件时&#xff0c;经常会用到它的连接池组件。典型的代码如下&#xff1a; PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager();connectionManager.setMaxTotal(httpConfig.getMaxPoolTotal());connect…

EasyRTC嵌入式音视频通信SDK:WebRTC技术下的硬件与软件协同演进,开启通信新时代

在当今数字化时代&#xff0c;智能设备的普及和人们对实时通信需求的不断增长&#xff0c;推动了嵌入式音视频通信技术的快速发。EasyRTC嵌入式音视频通信SDK凭借其独特的技术特点和应用优势&#xff0c;在嵌入式设备和多平台实时通信领域脱颖而出。 1、轻量级设计与高性能 Ea…

Uthana,AI 3D角色动画生成平台

Uthana是什么 Uthana 是专注于3D角色动画生成的AI平台。平台基于简单的文字描述、参考视频或动作库搜索&#xff0c;快速为用户生成逼真的动画&#xff0c;支持适配任何骨骼结构的模型。Uthana 提供风格迁移、API集成和定制模型训练等功能&#xff0c;满足不同用户需求。平台提…

Python:多线程创建的语法及步骤

线程模块&#xff1a;import threading 线程类Thread参数&#xff1a;group(线程组) target&#xff1a;执行的目标的任务名 args&#xff1a;以元组的方式给执行任务进行传参 *args可以传任意多个参数 kwargs以字典方式给执行任务传参 name&#xff1a;线程名 步骤&…

Jupyter Notebook 常用命令(自用)

最近有点忘记了一些常见命令&#xff0c;这里就记录一下&#xff0c;懒得找了。 文章目录 一、文件操作命令1. %cd 工作目录2. %pwd 显示路径3. !ls 列出文件4. !cp 复制文件5. !mv 移动或重命名6. !rm 删除 二、代码调试1. %time 时间2. %timeit 平均时长3. %debug 调试4. %ru…

快速入手-基于Django的Form和ModelForm操作(七)

1、Form组件 2、ModelForm操作 3、给前端表单里在django里添加class相关属性值 4、前端 5、后端form 新增数据处理 6、更新数据处理

【Linux系统】Linux权限讲解!!!超详细!!!

目录 Linux文件类型 区分方法 文件类型 Linux用户 用户创建与删除 用户之间的转换 su指令 普通用户->超级用户(root) 超级用户(root) ->普通用户 普通账户->普通账户 普通用户的权限提高 sudo指令 注&#xff1a; Linux权限 定义 权限操作 1、修改文…

剑指小米特斯拉:秦L EV上市11.98万起

3月23日&#xff0c;比亚迪王朝网推出全新中级纯电轿车秦L EV&#xff0c;价格区间为11.98万-13.98万元&#xff0c;瞬间火爆市场。 依托e平台3.0 Evo技术赋能&#xff0c;秦L EV以“国潮设计、智能座舱、越级空间、高效安全、高阶智驾”五大核心优势&#xff0c;直击年轻用户痛…

嵌入式学习(31)-Lora模块A39C-T400A30D1a

一、概述 A39C-T400A30D1a是一款410~490MHz&#xff0c;1W&#xff0c;具有高稳定性&#xff0c;工业级的无线串口模块。LORA扩频调制&#xff0c;实测传输距离最远可达10K米。该模块具备数据广播、数据监听、定点传输、主从模式、自动中继、定点唤醒等传输方式&#xff0c;支…

使用__attribute__((at(addr))) 固定变量到指定 Flash 地址

文章目录 一、代码示例&#xff1a;将变量固定到 Flash 0x08001000二、__attribute__((at(addr))) 的作用三、__attribute__((at(addr))) 可能导致的问题四、运行时修改 Flash 存储的变量五、在 GCC&#xff08;STM32CubeIDE&#xff09;中实现同样功能 在嵌入式开发中&#xf…