【Git】服务器搭建Git环境

本文参考了菜鸟教程中的git服务器搭建git远程仓库创建,文章流程简练可读性强,但仍有部分细节不清晰,导致操作失败,这里就这些问题加以补充完整。


菜鸟教程git服务器搭建

按照菜鸟教程配置即可,其中第1、2步要注意的地方如下:
1.添加git用户后$ useradd git -g git必须设置密码$ passwd git,否则连接被拒;
2.创建证书登录的时候,如下:

Paste_Image.png

红色线条标记的收集所有用户的公钥,指的是本地PC�公钥,位于pc_username/.ssh/文件目录下(不同电脑可能不同),注意.ssh为隐藏文件夹。如果.ssh目录下没有rsa文件则需要生成,参考如何创建公钥

如果最后克隆仓库的时候出现如下提示

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)

请参考这里开启服务器对应的服务并重启sshd守护进程
$ /etc/init.d/sshd restart


创建远程仓库

到这里我们的git服务器搭建就完成了,git服务器只作为共享资源的仓库,不应该在git服务器中对仓库资源做任何更改。为了管理资源,我们需要�创建一个远程仓库,有以下两种方式,

  • git服务器上创建git库->拉取到本地操作->推送到git服务器端
  • git服务器上创建mytest.git仓库->本地已有仓库:关联本地仓库到git服务器的mytest.git仓库,例:$ git remote add origin git@0.0.0.0:/path/mytest.git->推送到远端git仓库$ git push -u origin master(第一次使用该命令,将本地master和远程master分支进行关联)

注意:一个远端git库只能被关联一次

在服务器上推荐使用 git init –bare 方法创建一个所谓的裸仓库,之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作,如果你硬要操作的话,只会得到下面的错误(”This operation must be run in a work tree”),所以慎用git init在服务器上初始化仓库。

使用$ git push -u origin master命令推送到远程分支并合并的时候常见错误:

  • 权限问题

fatal: protocol error: bad line length character: This

是因为按照下图禁止了ssh登录,或者当前用户公钥没有加入/home/git/.ssh/authorized_keys文件


�这一步是坑.png
  • 服务器git仓库所属用户未修改

insufficient permission for adding an object to repository database ./objects

在服务端新创建一个仓库,仓库默认属于root用户,所以需要修改所属用户为git用户,如下:

�修改所属用户.png

更多创建远程库内容请参考链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容