当前位置: 首页 > news >正文

Git 菜鸟变大神 (四)Github 创建远程仓库以及关联本地仓库

       Git仓库概述

       我们来继续研究远程仓库,在前几篇博客中已经给大家介绍了git本地仓库的安装、初始化以及操作本地文件的各种命令,git、svn的目的都不仅仅是本地,svn是需要搭建一个svn服务器来保存、管理代码,git是不是也和svn一样呢,来需要有一个服务器呢?

       答案是需要的,也许你也像我一样已经用了很多年的svn管理工具,有一个服务器也许是一个共识,在这一点他们两者还是有很多共同之处的,记得有一句话的意思是说“创新并不是完全抛弃了旧思想,而是在传统思想的基础之上,增加了一点点新的想法”,感觉这句话说的很对,很多东西都是对以前的产品、事务的继承和发展,并不是完全抛弃,

       我们公司是搭建了一台git服务器作为版本库,其他开发人员只需要将版本库克隆到本地然后别人将自己写的代码push到服务器然后我们就可以从服务器上面pull下来最新代码,在每个人本机上面是拥有者完整的代码库的,这样保证了代码丢失的可能性很小,每个人在本机提交的时候都不会产生冲突,产生冲突也是pull别人代码时,可能和自己本地的冲突,在git里面也有着解决冲突的法宝。

       git服务器的作用也有备份的作用,假设团队人少而且代码同时坏掉那么代码岂不是没有了;相反,假如服务器坏了,也可以拿本地上面的git作为新服务器,git是分布式的它的版本库分布在每一个克隆本机上面。

       现在我们开发建远程仓库,为了节省资源和本着开源的原则我们在github上建立一个账号,github是保存众多开源项目的免费git服务器,为全球开源项目服务,当然如果你想有自己的私人空间并且容量大那么你需要花钱购买了,不过个人保存个自己的开源项目空间还是够用了。

       创建github远程仓库

       我已经建立好个人账户,打开new respository选项,如下图


       我建了一个仓库叫tgb,创建好之后界面如下:


       红色框中为自己的仓库地址,如果你本地安装着git客户端,就可以通过这个地址把代码克隆下来。

       建立关联

       本地与远程建立关联我们采用ssh秘钥对方式,在本机生成公钥和私钥文件然后把公钥公开放在远程一端,私钥在本机根据公钥私钥认证机制即可连着远程仓库,这种方式比较安全而且不用每次都输入秘钥,在搭建hadoop集群时每台服务器之间也是进行ssh 公钥认证免密码登录来进行通信。

        打开git bash 界面 :ssh-keygen -t -C "xxx@xxx.com" 即可,打开C盘用户目录下看有如下文件

        

       将is_rsa.pub文件打开文件内容复制到github网站,有一个add sshkey界面如下图

      

       title可以随便写,把公钥文件中内容复制到key文本框中,点击“add key”即可完成,上面那个已有的key是我本机的公钥。

       接下来打开Git bash 切换到我们的本地仓库目录,在仓库中输入命令如下:

        

       现在已经在本地和远程仓库关联起来了,可以把本地文件push到远程了,关联以后再推送就不需要remote,只用push命令就可以了,如下

       

       由于是第一次连着需要确认是否正在,输入yes即可,再回过头来看看远程仓库是否有了内容:


      可以看到git服务器中已经有了本地推送过来的文件,

总结:

       到这里本地和远程仓库已经建立好了,现在我们用的已经是分布式控制代码了,不管你在哪里都可以进行管理和开发,无论你在家里还是在中国、美国不会因为地域的限制而影响开发,是不是感觉这点要比svn好很多。

       假如你正在车上、在偏远山区没有网络同样也不会影响你提交代码,这一点是svn做不到的,它们各有自己的特色,也没有必要用着哪一个抨击哪一个的不好。





转载于:https://www.cnblogs.com/lilongsheng1125/p/4978477.html

相关文章:

  • Flash移动开发的一本好书AndroidIOS
  • ::before和::after 常见的用法
  • 跟我一起学习C++虚函数--第二篇
  • MySQL优化order by导致的 using filesort
  • 管理日志-原创理论工具--技能方格图
  • objective-c系列-NSMutableString
  • MySQL 数据库开发规范
  • 20 种提升网页速度的技巧
  • xdebug代码调试工具
  • AngularJS Toaster
  • 静态网站生成器将会成为下一个大热门
  • 二维数组举例
  • 7月上旬全球域名新增13.5万个 环比减少近29%
  • sftp详细参数说明
  • Shane版详细设计书 文档模板
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • Apache Pulsar 2.1 重磅发布
  • Asm.js的简单介绍
  • CAP理论的例子讲解
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • opencv python Meanshift 和 Camshift
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • React-生命周期杂记
  • vuex 学习笔记 01
  • webpack入门学习手记(二)
  • Yeoman_Bower_Grunt
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 浏览器缓存机制分析
  • 前端学习笔记之观察者模式
  • 实现简单的正则表达式引擎
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 使用SAX解析XML
  • 与 ConTeXt MkIV 官方文档的接驳
  • mysql面试题分组并合并列
  • ​Python 3 新特性:类型注解
  • ​Spring Boot 分片上传文件
  • #includecmath
  • #pragma once与条件编译
  • $jQuery 重写Alert样式方法
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (7)STL算法之交换赋值
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (LeetCode 49)Anagrams
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (函数)颠倒字符串顺序(C语言)
  • ./和../以及/和~之间的区别
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET应用架构设计:原则、模式与实践 目录预览
  • //TODO 注释的作用
  • @ConditionalOnProperty注解使用说明
  • [2018-01-08] Python强化周的第一天