【Git】:SSH 公钥配置、远程仓库的基础使用...
1️、前言
今天学习的笔记内容是:
远程仓库的基本使用
2️、内容
2.1、什么是远程仓库?
对于git
来讲,仓库分为两种,一种是本地仓库,另一种是远程仓库。
之前讲过,git
不像SVN
那样有个中央服务器,如果想通过git
来分享代码或者多人协同开发,则需要将开发文件放在一台公共服务器上,每个开发人员都能够连接得到。这也就是远程仓库。
从概念上讲,远程仓库是就是指托管在因特网或其他网络中的你的项目的版本库。 你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。
2.2、常用的托管服务
一般我们都是借助互联网上的一些代码托管平台来搭建 Git 远程仓库。
其中常用的有 GitHub、Gitee 以及 GitLab 等
下面简单介绍:
GitHub:一个基于 Git 的,面向开源的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。注意,免费用户只能使用公共仓库,也就是公开代码。而付费用户可以建立私人仓库。
GitHub 网址:【https://github.com】
Gitee:由开源中国(OSChina)推出的,基于 Git 的代码托管服务,其包括三个版本,分别是社区版、企业版和高校版。
Gitee 网址:【https://gitee.com】
gitLab:一个基于 Git 作为代码管理工具,用于仓库管理系统的开源项目,并在此基础上搭建起来的 Web 服务。一般用于在企业或学校等内部搭建 Git 私人服务器。
GitLab 网址:(https://about.gitlab.com
2.3、配置 SSH 公钥
由于本地git
仓库和远程仓库一般是通过SSH
加密的。
因此我们需要配置SSH
公钥,将个人公钥添加到远程服务端的配置文件中去。这样远程服务端就能辨别是否为本人操作。
首先我们需要查看 C 盘用户主目录中的.ssh
目录下是否有id_rsa
和id_rsa.pub
文件。如果有,则证明已经有了公钥,直接打开后复制获取就行。这两个文件就是SSH Key
的秘钥对,其中id_rsa
文件存储的是私钥,不能泄露,id_rsa.pub
文件存储的是公钥,可以放心地告诉任何人。
如果没有上述两个文件,则需要创建 SSH Key 公钥。步骤如下:
打开
git bash
窗口输入
ssh-keygen -t rsa
命令(用于生成公钥)按照默认设置,一路不断回车即可
可以注意到,如果公钥已经存在,此时执行上述语句后,新的公钥会进行自动覆盖。
创建公钥成功后,我们可以打开id_rsa.pub
文件来获取公钥,当然也可以在git bash
窗口下输入命令cat ~/.ssh/id_rsa.pub
用于打开id_rsa.pub
文件。
最后,在远程仓库里配置生成的公钥即可。
2.4、添加远程仓库
我们需要输入以下命令,用于告诉Git
本地仓库,你所对应的远程仓库是哪一个?
命令:
git remote add origin 远程仓库地址
可以看到,在上述命令中,origin
就是远程仓库的名字,一般默认下我们都会起这个名字用于代表远程库,这是一种习惯命名,当然你也可以起其他的名字。
而远程仓库地址可从远端服务器上获取。
2.5、查看远程仓库
在本地git
仓库中,我们可以查看添加的远程仓库有哪些。
输入命令:
git remote
如果想看到每个远程仓库的实际链接地址,我们可以加上-v
参数。
输入命令:
git remote -v
2.6、推送到远程仓库
当我们将本地仓库和远程仓库关联后,就可以将本地仓库的内容推送(push)到远程仓库中去。
输入命令:
git push origin master
上述命令用于将本地仓库中的master
分支推送到远程仓库中的master
分支。
另外,为了可以简化推送命令,我们有时会加入--set-upstream
参数用于建立本地分支和远端分支的关联关系。
输入命令:
git push --set-upstream origin master
当关联关系建立好后,我们再次推送本地仓库到远程仓库的命令就可以简化许多,可以省略远端名和分支名。如下所示:
直接输入命令:
git push
即可。
2.7、查看关联关系
我们可以输入以下命令来查看本地分支与远程分支的关联关系。
输入命令:
git branch -vv
2.8、从远程仓库中克隆
我们可以将远程仓库中的内容克隆到本地电脑中。
输入命令:
git clone <远程仓库地址> [本地目录]
可以注意到,上述命令中的[本地目录]
是可以省略的。
2.9、提取远程仓库的更新
一般来说,对于克隆我们都是操作一遍即可。后续本地仓库需要获取远端仓库的更新,可以使用以下命令。
输入命令:
git fetch
执行完上述命令后,将抓取远程仓库中的所有更新分支。当然,我们也可以指定远程仓库的名字以及分支名进行抓取更新。如下所示:
命令:
git fetch origin [分支名]
2.10、合并远程仓库的更新
需要注意到,当我们执行完抓取命令后,只是将远程仓库里的更新抓取到本地而已,不会进行合并。我们需要进行merge
操作来将分支合并到当前分支中。
比如输入命令:
git merge origin/master
2.11、拉取远程仓库的更新并自动合并
输入命令:
git pull origin [分支名]
上述拉取命令用于将远程仓库中的更新拉取到本地仓库中并进行自动合并。
效果等同于fetch + merge
。
当然,如果你直接输入命令git pull
而没有指定远程仓库名和分支名,那么默认会抓取所有的更新并且合并。
3、在最后
好了,本篇笔记就到写这,欢迎大家到评论区一起讨论!
版权声明: 本文为 InfoQ 作者【翼同学】的原创文章。
原文链接:【http://xie.infoq.cn/article/59c2195d8d03c1c8170678b85】。文章转载请联系作者。
评论