版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢!
本文网址:https://blog.csdn.net/sun8112133/article/details/103889640
文章目录
Git 是分布式版本控制系统,若将一个 Git 仓库分布到不同的机器上,那么这样的仓库我们把它称为是 远程仓库。当然我们完全可以自己搭建一台远行 Git 的服务器来充当这个 远程仓库,也可以使用目前比较流行的 GitHub(GitHub 是专门提供 Git 仓库的托管服务平台),本篇就以使用 GitHub 为例讲解如何 “克隆” 远程仓库。
一、配置 SSH
1、注册 GitHub
首先我们必须要从 GitHub 官网 上注册一个 GitHub 账号,这样才能免费获得 Git 远程仓库。
注册方式十分的简单,只需要输入用户名、电子邮箱、密码即可完成注册;如果您已经注册过,也可以直接登录。
2、创建 SSH Key(在 Windows 上)
由于本地 Git 仓库和 GitHub 仓库之间的传输是通过 SSH 协议加密的,所以必须先在本地创建 SSH Key。
我们先在 “用户主目录” 下,查看是否有
.ssh
目录,如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳过这一步,因为你已经创建好 SSH Key 了;如果没有,则打开 Git Bash(安装 Git 时,会在开始菜单中创建 Git Bash 快捷方式):
在 Git Bash 中输入生成 SSH Key 的命令:
ssh-keygen -t 算法 -C "电子邮箱"
然后一路回车,使用默认即可。除非是有关军事的项目,否则一般不会设置密码。
如果一切顺利的话,可以在用户主目录里找到
.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个文件就是 SSH Key 的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
ssh-keygen -t rsa -C "[email protected]"
-t rsa
:表示使用的是 RSA 加密算法;-C "..."
:表示注释,一般注释内容是自己的电子邮箱,推荐写配置 Git 时的电子邮箱。
3、GitHub 中添加 SSH Key
登录 GitHub 账号,点击右上角的头像,选择 “Settings”,在左侧菜单栏选择 “SSH and GPG keys” 选项,点击 “New SSH key” 来添加新的 SSH Key:
进入 “SSH keys / Add new” 页面,Title 可任意写,Key 文本框里粘贴
id_rsa.pub
文件的内容:
点击 “Add SSH Key” 按钮,你就应该看到已经添加的 Key:
GitHub 需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而 Git 支持 SSH 协议,所以 GitHub 只要知道公钥,就可以确认只有你自己才能推送。
GitHub 允许添加多个 Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的 Key 都添加到 GitHub 中,就可以在每台电脑上往 GitHub 仓库推送了。
注意: 在 GitHub 上免费托管的 Git 仓库,任何人都可以看到(但只有你自己才能改)。
如果你不想让别人看到 Git 库,可以将 GitHub 的公开仓库变成私有的,这样别人就看不见了。另一个办法是自己动手,搭一个 Git 服务器,因为是自己的 Git 服务器,所以别人也是看不见的。这个方法在后续博客中会有讲解,这也是公司内部开发所必备的。
二、添加远程库
1、在 GitHub 上创建仓库
如果你想用本地的 Git 库 连接 GitHub 上的远程库,并且让这两个仓库远程同步(也就是将本地的 Git 库中的内容放到 GitHub 远程库上),那么你需要先在 GitHub 上新建一个仓库:
在
Repository name
框中填写仓库名(仓库名自定义即可,我这里叫MyGitHub
),其他保持默认设置,点击Create repository
按钮,就成功地创建了一个新的 GitHub 仓库:
创建好的 GitHub 仓库还是空的,它会提示可以将这个仓库克隆出一个新的仓库,也可以将已有的本地仓库与之关联,然后把本地仓库的内容推送到 GitHub 仓库中(推送也就是上传到 GitHub 仓库)。
##2、关联远程仓库
我们在本地仓库中输入 关联远程仓库命令 :
git remote add 远程仓库名 git@服务器:路径/仓库名.git
,如下:
添加后,就可以将本库创建的所有内容推送到远程库上了,使用推送命令:
git push -u 远程仓库名 分支名
,如下:
以上就是将
master
分支推送到了指定的远程仓库中,使用-u
参数 Git 不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,以后推送就可以简化直接使用:git push origin master
命令推送即可。把本地仓库的内容推送到远程仓库中,用
git push
命令,实际上是把当前分支master
推送到远程。注意: 当你第一次使用 Git 的
clone
或push
命令连接 GitHub 仓库时,会有一个警告:
这是因为 Git 在使用 SSH 协议连接时,第一次需要验证 GitHub 服务器的 Key,需要你确认 GitHub 的 Key 的指纹信息是不是真的来自 GitHub 服务器,你直接输入
yes
回车即可。这时候 Git 会输出一个警告,告诉你已经把 GitHub 的 Key 添加到本机的一个信任列表里了:
这个警告只会出现一次,后面的操作就不会出现了。
如果你想验证是否真的来自你的 GitHub 服务器,在你输入
yes
之前,可以比对 GitHub的RSA Key的指纹信息 是否与 SSH 连接给出的一致。推送成功后,可以立刻在 GitHub 页面中看到远程仓库的内容已经和本地仓库一样了:
现在,你就拥有了真正的 分布式版本库 !
3、常用的关联命令
URL(如:[email protected]:GitHub账户/仓库名.git)
-
查看远程库信息
git remote
-
添加远程仓库:
git remote add 远程端名 URL
git remote add origin [email protected]:sun8112133/MyGitHub.git
-
查询远程仓库列表:
git remote -v
git remote -v
-
删除远程仓库:
git remote remove 远程端名
git remote remove origin
-
修改远程仓库:
git remote set-url 远程端名 新的URL
git remote set-url origin [email protected]:sun8112133/MyGit.git
三、从远程库克隆
添加远程仓库 是先有 本地仓库,再有 远程仓库 的情况。那么我们一般团队开发项目都是先有 远程仓库,才有 本地仓库 的,这时候就需要从 远程仓库 中克隆到 本地仓库。
1、在 GitHub 上准备一个有内容的仓库
首先登录 GitHub,创建一个新的仓库(我这里叫
MyGitHubClone
):
这时要勾选住
Initialize this repository with a README
选项,让 GitHub 自动生成一个README.md
文件,创建成功后,可以从 GitHub 仓库中看到README.md
文件:
2、克隆远程仓库
GitHub 远程仓库准备好后,在本地选择一个盘符位置(如:E盘),使用 克隆仓库命令:
git clone git@服务器:路径/仓库名.git
克隆成功后,进入本地仓库,你就会发现已经有了
README.md
文件了:
这样就成功克隆了一份,以后我们修改了直接使用 推送命令 到远程仓库即可!