设为首页 收藏本站
查看: 986|回复: 0

[经验分享] 比较好的git 介绍

[复制链接]

尚未签到

发表于 2018-1-16 06:32:01 | 显示全部楼层 |阅读模式
GIT托管小计  git,看到这个总想起linus在思考Merge window时的名言“digg用户是‘手淫的海象’”。囧orz
  说破大天,一个没有公开发布机制的版本管理系统也是胡扯。除非富得流油,我们往往会选择一些公开的版本管理托管服务(hub)。来公开发布我们到版本管理系统。这里主要介绍几个git托管服务的网站。以及将git仓库托管出去的通用流程。

  • github:

    • 提供私有和开源两种仓库托管服务
    • 软件库提供WIKI、Issuses等功能,项目管理提供dashboard等功能,账户提供blog、站内邮箱等功能
    • 好像特别出名的样子
    • 免费用户:磁盘空间限额300M,软件库个数不限,但必须开源。收费用户可以有私有软件库、多项目等服务

  • unfuddle:

    • 提供私有仓库托管服务
    • 免费用户磁盘空间限额200M,不限制仓库数量
    • 项目管理相关的功能很齐全,比如公告板啊、投票系统啊、记事本啊、项目里程管理、站内消息等等

  • repo.or.cz:

    • 服务器性能、带宽、访问速度不错。
    • 用户账户管理的功能很简单,甚至可以说简陋。除了设置ssh密钥外貌似没别的功能
    • 项目(仓库)和用户是独立的,每个项目磁盘限额400M,超过了需要申请,没有付费的说法
    • 项目可以直接自动镜像别的git仓库,也可以像传统的那样自己push。
    • 没有任何项目管理的功能

  这里有必要说一说SSH密钥的问题,可能很多人在使用git,尤其是用托管的时候经常会遇到的问题。各个git托管服务基本上都涉及SSh密钥认证push,关于SSH密钥对的知识问Google。在使用托管服务前我们需要先在本地生成一个ssh密钥(对)。这个密钥对包括本地和公共两个部分。里面可以包含密码等信息。生成方法如下:
?View Code BASH1  
2
  
3
  
4
  
5
  

# 这里可以加上-t rsa选项,明确指示所使用的密钥类型,默认好像就是rsa。  
ssh-keygen
  
# 然后这里会提示你输入保存密钥的位置,直接回车保持默认即可
  
# 然后会提示输入密码,可以直接回车不使用密码,不过建议输入一个密码,然后回车
  
# 然后会要求重复一次,重复输入即可
  这样就生成了一个密钥对。保存在~/.ssh目录下,本地密钥保存在id_rsa中,公共密钥保存在id_rsa.pub中。
  在服务商那里申请到git托管服务的时候,需要给用户或者项目添加用于push时认证的SSH公共密钥。添加时往往会有一个标题、一个值。标题随便输入,用来区分不同的公共密钥的。比如你在公司到电脑里生成过一个,在家里的又生成了一个。内容就是id_rsa.pub的内容:
?View Code BASH1  

cat ~/.ssh/id_rsa.pub  虽然所有到服务商都有这个过程,但是却不尽相同。
  通常情况下,有项目管理功能的(如上面的github、unfuddle),都有两个地方可以添加公共密钥。一是账户设置里,二是具体的软件仓库(项目)里。通常在账户设置里的密钥各个软件仓库(项目)都可以继承,而各个软件仓库(项目)的却不能相互继承。而且即便是继承的账户设置里到密钥,在软件仓库(项目)的密钥管理界面里也是看不到的。所以经常出现在某个仓库A里添加了密钥,另一个仓库B里push的时候却没权限。而在B里添加密钥的时候却又提示密钥重复(虽然管理界面里看不到)。
  而没有项目管理功能的(如上面的repo.or.cz),就比较简单了。这种情况下软件仓库(项目)是完全独立于账户的,也没有密钥管理设置一说,只能添加具有push权限的用户。然后你可以在用户设置里设置密钥。
  另外值得提醒的是,有些服务商(比如repo.or.cz)虽然可以添加多个密钥,但是多个密钥是输入在同一个输入款里,用分行的方式隔开的。
  认证完密钥,我们就可以push我们的git仓库了。如果你本地还没有建立git仓库,先建立之并作一个初始化的提交:
?View Code BASH1  
2
  
3
  
4
  
5
  

cd /path/to/git/repo  
git init
  
echo “仓库简介” > README
  
git add .
  
git commit -a -am "初始化提交的日志"
  需要注意,git是不跟踪空目录的。所以初始化版本的时候你好歹弄一个README,才能正常提交到仓库里。
  建立好本地仓库后,就可以将提供git的hub服务的push地址添加进来了。
?View Code BASH1  

git remote add origin gitpush地址  这里的origin是一个代号,用于在本地代表这个远程地址。当然也可以添加很多个远程地址,分别用不同的代号,然后push到各个远程地址。不过origin这个代号比较特殊,他代表该远程镜像是本仓库的原始仓库。当别人用git clone克隆你的仓库的时候,会自动在克隆出的仓库加上一个远程地址,代号就是这个origin。
  gitpush地址在服务商那里创建软件仓库的时候会给出。需要注意的是通常会给出多个地址,其中一部分是用于公共clone的,匿名只读权限。另一部分是用于有权限的人push的,SSH认证读写权限。这里要添加的是SSH认证的push权限的地址。
  然后我们就可以push了:
?View Code BASH1  

git push origin push的分支  记住首次push要添加“push分支”参数,以后如果还是把这个分支push出去的话,这个参数可以省略,直接:
?View Code BASH1  

git push origin

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-435545-1-1.html 上篇帖子: git submodule,解决依赖模块更新 下篇帖子: git基础
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表