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 要合并到当前分支的分支名字
相关推荐
KaneLogger1 小时前
OpenCode 操作手册
git
木子小喵1 小时前
通俗讲解Git安装每一步!!
git
IOT那些事儿2 小时前
TortoiseGit拉取开源子仓库失败
git·ssh·tortoisegit·submodule
不想看见4044 小时前
Git的多种仓库选择与推荐
git
夜星辰20238 小时前
MobaXterm会话窗口详解
嵌入式硬件·ssh·调试串口
脆皮炸鸡7559 小时前
Linux开发工具~~~版本控制器Git以及调试工具GDB
linux·服务器·开发语言·经验分享·git·学习方法
console.log('npc')11 小时前
团队协作提交自己的功能
git
独隅11 小时前
开源项目 Git 贡献全流程的完整拆解:从 Fork 到 PR
git·开源
龙泉寺天下行走12 小时前
记一次windows SSH无法免密登录Linux的处理
linux·运维·ssh
___波子 Pro Max.13 小时前
Git Rebase: HEAD~ 的简洁写法
git