分布式版本控制系统Git|五Git基础|远程仓库远程仓库是指托管在网络上的项目版本库。这里介绍的平台是Gitee,具体链接:https://gitee.com/。您可以自行在网站上注册一个帐户。本地Git仓库与Gitee仓库之间的传输是通过SSH加密的,所以需要先进行设置:第一步:创建SSHKey。在用户目录下查看是否有.ssh目录。如果有,检查是否有id_rsa和id_rsa.pub这两个文件。如果是,可以跳过这一步,否则,打开Shell,创建SSHKeyssh-keygen-trsa-C"youremail@example.com"id_rsa是私钥,不能随意泄露。id_rsa.pub是公钥,可以发布。第二步:登录Gitee,打开“设置”-“SSH密钥”页面:在Addkey下,填写Title,在Key文本框中,复制粘贴id_rsa.pub的内容,点击Submit,点击在弹出的账号安全验证窗口中,输入当前账号的密码进行确认添加Key。查看远程仓库假设要查看配置的远程仓库服务器,可以运行gitremote命令,会列出服务器的缩写。假设你克隆了自己的仓库,你会看到origin——此时Git给出了克隆仓库服务器的默认名称:$gitclonegit@gitee.com:damengsanqianqiu/python_learn.gitCloninginto'python_learn'...remote:枚举对象:391,done.remote:计数对象:100%(391/391),done.remote:压缩对象:100%(318/318),done.Receiremote:总计391(增量143),重复使用0(增量)0)接收对象:100%(391/391),160.78KiB|357.00KiB/s,done.Resolvingdeltas:100%(143/143),done.$cdpython_learn$gitremoteorigin这里也可以使用选项-v来显示需要读写的缩写和对应的URL保存的远程存储库使用的Git。$gitremote-vorigingit@gitee.com:damengsanqianqiu/python_learn.git(fetch)origingit@gitee.com:damengsanqianqiu/python_learn.git(push)如果远程仓库不止一个,这条命令会列出所有。添加远程仓库登录Gitee,点击+,选择NewRepository,创建一个仓库。创建完成后,页面会有相应的提示告诉如何操作。这里,我在远程仓库中创建的仓库名称与本地仓库名称相同。Gitee创建的仓库还是空的。现在将已有的本地仓库关联起来,后续的修改会提交到Gitee。根据页面提示,在本地仓库运行命令:$cdabout_git$gitremoteaddaggit@gitee.com:damengsanqianqiu/about_git.git$gitremote-vaggit@gitee.com:damengsanqianqiu/about_git。git(fetch)aggit@gitee.com:damengsanqianqiu/about_git.git(push)gitremoteadd该命令用于添加一个新的远程Git仓库,使用指定后续的缩写参考。从命令行工作时,您现在可以使用ag而不是整个URL。假设远程仓库的内容已经被协作者修改和更新。本地仓库版本与远程仓库版本不一致。现在如果你想获取远程仓库中存在但本地不存在的信息,你可以使用gitfetchag:$gitfetchagremote:Enumeratingobjects:8,done.remote:Countingobjects:100%(8/8),done.remote:压缩对象:100%(5/5),完成。remote:总计6(增量3),重复使用0(增量0)解包对象:100%(6/6),631字节|0bytes/s,done.Fromgitee.com:damengsanqianqiu/about_git34cec72..ebbd604master->ag/master现在可以通过ag/master在本地访问远程master分支了。上面使用的代码从远程仓库抓取拉取是从远程仓库获取数据:$gitfetch[remote-name]这个命令会拉取本地还没有的数据。执行完成后,你将拥有对远程仓库中所有分支的引用,可以随时合并或查看。上面也介绍了gitclone命令的执行,会自动添加为远程仓库,并以默认origin命名。因此,gitfetchorigin将在克隆后抓取所有新推送的工作。但是,gitfetch命令在本地抓取数据,但不会自动合并或修改当前工作。这必须手动合并。假设有本地分支跟踪远程分支,可以使用gitpull命令自动抓取分支然后合并到当前分支。这是推荐的工作流程。推送到远程仓库共享项目时,必须将项目推送到远程仓库。您可以使用以下命令:$gitpushagmasterEnumeratingobjects:9,done.Countingobjects:100%(9/9),done.Deltacompressionusingupto4threadsCompressingobjects:100%(7/7),done.写入对象:100%(7/7),869字节|869.00KiB/s,完成。总共7个(delta3),重复使用0个(delta0)remote:PoweredbyGITEE.COM[GNK-3.8]Togitee.com:damengsanqianqiu/about_git.gitebbd604..24c7079master->mastergitpush[remote-name][branch-name]该命令是将本地项目推送到远程仓库。如果是同时clone,并且协作者已经push到远程仓库后,使用这个命令会失败。这时候应该先把协作者的工作拉下来,合并到自己的工作中,最后再推。这部分包含在Git分支中。查看远程仓库如果想查看远程仓库的详细信息,可以使用gitremoteshow[remote-name]命令,例如:$gitremoteshowag*remoteag获取地址:git@gitee.com:damengsanqianqiu/about_git.gitPushURL:git@gitee.com:damengsanqianqiu/about_git.gitHEAD分支:master远程分支:devtrackedmastertracked为'gitpull'配置的本地分支:mastermergeswithremotemasterLocalrefsconfiguredfor'gitpush':dev推送给dev(最新)master推送给master(最新)该命令的输出会显示远程仓库的URL和跟踪分支信息。在上面的输出结果中,给出的信息表明当前在master分支中。如果运行gitpull,远程master分支将被合并到本地master分支。这些结果还列出了在特定分支上执行gitpush时将自动推送到哪个远程分支。远程仓库的重命名和移除gitremoterename命令可以重命名远程仓库的简称。例如:$gitremoteagorigin$gitremoterenameagaboutgit$gitremoteaboutgitorigin这里要注意的是,这个操作重命名后,所有的远程跟踪分支和配置都会更新。官方文档也给出了相关提示:Renametheremotenamedto。远程的所有远程跟踪分支和配置设置都已更新。所以修改之前对ag/master的引用现在会移除对aboutgit/master仓库的引用,操作可以使用gitremoteremove或gitremoterm命令。例如:$gitremoteremoveaboutgit$gitremoteoriginwhereaboutgit已被删除。此处的删除也会同步删除所有跟踪分支和配置。以上是本文的主要内容。未完待续欢迎关注微信公众号《书所集录》