携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情
1️⃣前言
大家好,我是翼同学。今天笔记的内容是:
- Git操作远程仓库
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️⃣写在最后
好了今天的笔记就记到这里。