git 对远程仓库的简单连接

对本地 git 仓库 与 远程仓库的简单连接以及传输文件

环境基于 window10 或 linux

由于连接远程仓库可选的需要 SSH 加密连接,所以必须先在本地电脑(客户端)上生成 SSH 密钥对,然后将私钥保留在本机,将公钥上传到远程仓库(服务器)的密钥管理中。

此后,在需要传输的文件目录下,使用 git 命令在该文件夹下创建一个本地 git 仓库。之后将需要上传的文件先传入到本地仓库,再通过本地仓库与远程仓库的连接,进而上传文件。

环境部署

Linux环境下

若为 linux ,则需要确保安装 ssh 服务,ubuntu 为例。

sudo apt-get install openssh-server

window环境下

若为 window 环境,则需要安装 gitbash 。

云盘下载:https://www.lanzous.com/ib76nif
安装时一直点击 next 安装完成即可。
安装完成后,随便点击一个文件目录空白处右键,之后点击 Git Bash Here 。

之后这个黑窗口就可以充当 linux 的终端来进行下面的步骤了。

生成 SSH 密钥对

一般在用户的根目录下来生成密钥对,则先进入用户根目录。

cd ~/

之后,可以按照服务器上说明的步骤来生成一个密钥对。

比如这里华为云仓库建议是 rsa 加密,且还需要用户创建时的邮箱来生成的。当然,不遵从这个格式的密钥对也可以使用。

在当前目录下生产新密钥对,后面填写自己的邮箱就行。

扫描二维码关注公众号,回复: 10670819 查看本文章
ssh-keygen -t rsa -C "[email protected]"

在生成的过程中,会有三次输入,第一次是确定保存路径,回车即默认在当前目录下(已在根目录下)。后两次是创建对该密钥加密的密码以及确认密码,可以直接回车即默认为空(推荐)。

之后会在该目录下生成一个 .ssh 隐藏文件夹,可以输入 ls -a 看见此文件夹。

我们也可以进入到这个文件夹中,然后查看这个文件夹下的文件。

cd ~/.ssh
ls

可以看到,有两个文件,id_rsa 和 id_rsa.pub 。id_rsa 是私钥,一般存放在自己的电脑中,而 id_rsa.pub 是公钥。

现在我们拥有了密钥对,现在需要将公钥交给服务器,以便登录验证。

以华为云仓库为例,点击添加 SSH 密钥,我们需要将生成的公钥上传给云仓库。首先需要文本复制公钥。

window下(在 gitbash 中直接输入命令 或 本地用记事本打开同样能复制)

clip < ~/.ssh/id_rsa.pub

将文件复制到window剪贴板中,之后在华为云上粘贴密钥。

linux下

由于 xclip 可能无法使用,故可直接使用 nano、gedit、vi 、vim 来查看文本内容,再进行复制操作。

例如 vim 下复制到剪贴板:

vim ~/.ssh/id_rsa.pub
:ggVG"+y

此后在华为云粘贴密钥即可。

这样我们就完成了生成 SSH 密钥的步骤,当我们远程访问仓库时,客户端与服务器的密钥会互相配对,完成端口的登录验证。

连接云仓库

若为 linux 环境,则确保安装 git ,ubuntu 为例。

sudo apt-get install git

我们先在一个文件夹下,创建本地 git 仓库。这个文件夹是可选的,可以先用文件管理器进入该文件夹,然后右键打开 gitbash 或 打开终端。这时 gitbash 或 终端 所在的位置即为当前文件夹。

或者通过命令创建文件夹,这里创建一个 test 文件夹并进入。

mkdir test
cd ./test

在当前文件夹下创建本地 git 仓库

git init

.git 也是隐藏文件夹,在任务管理器中显示隐藏文件夹或使用 ls -a 可看见。在下面提交文件到本地仓库的时候,文件即会存放到这个文件夹当中。

假如我们要把当前文件夹中的一个文件 test.txt 上传到华为云仓库中。

先要获取这个仓库的 ssh 地址:点击某个华为云仓库,在 “克隆/下载” 那标有该仓库的 ssh 地址。

之后用 git 命令,在当前本地仓库中,将这个地址起一个 “别名” ,这个别名即对应着该仓库。比如这里的别名为 origin

git remote add origin xxxxxxxxx

xxxxxxxxx 表示仓库 ssh 地址。

回到上面所讲,选择文件 test.txt ,通过 git add 命令将文件先添加到文件暂存区。文件记得要输入全称。

git add test.txt

此后通过 git commit 命令将存在于暂存区的文件传入本地仓库中。我们在命令中还需要填写本次 commit 的备注,比如 "test" 。

git commit -m "本次提交的备注"

此时应该会报错,提示需要告诉本地仓库自己的邮箱和名字是什么。

所以按照提示,先设置自己的邮箱名以及名字,设置完之后再 git commit 即可。注意空格。

git config --global user.name "名字"
git config --global user.email "邮箱"
git commit -m "test"

我们可以看到,一个文件已经成功导入到本地仓库了~

最后我们还差一步,就是将本地仓库与远程仓库连接,然后同步文件就 OK 了。

之前我们将 远程仓库 起了个别名,叫 origin 。

此后,使用 git push 命令,将本地仓库的文件上传到 origin 这个仓库中。这里的 master 是一个仓库的 “分支”,而一般每个仓库被创建后的一个分支叫 master 。相关知识可另搜百度。

git push -u origin master

这样就相当于将我们本地仓库的 master 分支的文件推送到云仓库的 master 分支上。

在命令执行期间有一次询问:是匹配到了 ssh 密钥对,按上面步骤这里是成功匹配了,填入 yes 再回车即可。

之后我们会报错,因为本地仓库与远程仓库是两个独立的仓库,需要整合两个仓库的操作历史,才可以完成上传。

故需要强行整合两个仓库的内容。之后执行 git push 就 OK了~

git pull origin master --allow-unrelated-histories
git push -u origin master

或者强行上传

git push -uf origin master

之后我们就可以在华为云仓库看到上传的文件了。

猜你喜欢

转载自www.cnblogs.com/Absofuckinglutely/p/12676588.html