前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搭建一个Git服务有多简单,只需四个步骤

搭建一个Git服务有多简单,只需四个步骤

作者头像
兜兜转转
发布2023-03-08 13:47:26
6270
发布2023-03-08 13:47:26
举报
文章被收录于专栏:CodeTimeCodeTime

Git作为分布式的源码管理工具,已经受到了越来越多人的青睐。和SVN的中心化服务不同,Git服务主要是将各个客户端的源码版本进行同步,类似于共享目录的作用,只是为了方便不同开发人员将各自的版本进行交换,不像SVN那么依赖于服务器。现存的Git服务器有Github,码云之类的,不过如果涉及到代码保密,不想上传到其他第三方公司托管,那么就可以自己搭建一个Git服务。 搭建一个Git服务有多简单呢?本文以一个树莓派为例,描述如何在Linux操作系统上创建Git服务。

安装git

输入命令:

1

$ sudo apt-get install git

创建账号

  1. 添加一个用户,名字叫git, $ sudo adduser git,仅作为git服务使用,这里账号名其实是没有要求的,这个名字只会影响你的项目地址
  2. 修改该账号的默认bash,将该账号的默认bash设置为git-shell,这样该账号只能作为git使用,不可登录 输入命令sudo vim /etc/passwd,找到这一行(你刚建完账号,应该在最后一行)git:x:1001:1001:,,,:/home/git:/bin/bash, 将其修改为git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell保存

创建项目

可以在任意位置创建一个项目,比如这里选择/home/git在此目录下执行命令 sudo git init --bare test.git创建一个test项目修改该项目的权限为git所有, sudo chown -R git:git test.git到这里你的项目已经创建成功了,地址是git@你的服务器ip:home/git/test.git,如果你的ssh端口不是默认的22,那就使用这个地址ssh://git@你的服务器ip:ssh端口/home/git/test.git

创建访问公钥

现在你去clone这个项目的时候,会提示你输入git的登录密码,为了避免每次push或者pull的时候到要输入密码,你可以把客户端的公钥添加进服务器。

  1. 在客户端执行命令$ ssh-keygen生成公私钥对,如果有的话就不用生成了。生成的文件在用户目录下的.ssh文件夹下面,会有2个文件id_rsaid_rsa.pubid_rsa.pub就是你的公钥,id_rsa是私钥,这个文件内容不要泄露;
  2. 在服务器的/home/git/.ssh下创建文件authorized_keys,如果.ssh目录不存在就创建一个,注意这里的/home/git是你的git账号的工作目录,你要用哪个账号作为git登录,你就到哪个账号的工作目录下;
  3. 将客户端的id_rsa.pub内容粘贴进authorized_keys中,一个客户端占用一行,多个客户端就添加多行。比较坑的是,我用复制粘贴并不会成功,所以采用其他办法:将id_rsa.pub直接传到服务器上,然后执行cat id_rsa.pub >> ~/.ssh/authorized_keys追加到文件中。

结束

到此,一个Git服务已经搭建完毕 使用$ git clone git@你的服务器ip:home/git/test.git把项目克隆到本地即可,随后可以正常push和pull 全部完成之后,后面再添加项目仅需要执行第3个步骤(创建项目)即可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装git
  • 创建账号
  • 创建项目
  • 创建访问公钥
  • 结束
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档