腾讯云部署git服务器 腾讯云部署git服务器错误

fatal: protocol error: bad line length character: This

昨晚尝试搭建一个Git服务器,在搭建好服务器后,在服务器创建了一个空项目,我在本地使用git clone 拉取项目时,报了fatal: protocol error: bad line length character: This的错误。这个问题是出在Git服务器端,不是Git客户端的问题,所以Git客户端不需要修改任何东西。

成都创新互联长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为杨浦企业提供专业的成都网站建设、成都做网站,杨浦网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

我们可以查看如果我们是通过git用户拉去项目的,我们可以在服务器端通过cat /etc/passwd来查看git的登录shell,应该可以看到类似下面一行:

我们可以通过vim把它改为

或者通过命令修改也可以

这样Git客户端就可以通过git账户拉取项目啦。

基于腾讯云搭建自己的的Hexo博客

先搞明白Hexo博客从搭建到自动发布的架构,才能更好的理解我们每一步进行的操作。

不然只跟着步骤过了一遍,却不知道为什么这么做。

首先看这张架构图:

整个流程就是本地将 *.md 渲染成静态文件,然后Git推送到服务器的 repository ,服务器再通过 git-hooks 同步网站根目录。

前提条件: 腾讯云服务器

第一部分 : 服务器环境搭建,包括安装 Git 、 Nginx 配置 、创建 git 用户 。

第二部分 : 本地 Hexo 初始化, 包括安装 NodeJS 、 hexo-cli , 生成本地静态网站

第三部分 : 使用Git自动化部署发布博客

NodeJS 安装可以参考: Linux安装NodeJS

找到以下内容

在下面添加一行

保存退出后改回权限

随后设置Git用户的密码,

切换至git用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限

然后就可以执行ssh 命令测试是否可以免密登录

至此,Git用户添加完成

我是用的是lnmp 一键安装包,nginx安装教程一大堆,就不再叙述。主要看nginx配置。

找到nginx的配置文件,修改配置如下:

首先要安装 hexo-cli ,安装 hexo-cli 需要 root 权限,使用 sudo 运行

然后初始化Hexo程序

等执行成功以后安装两个插件, hexo-deployer-git 和 hexo-server ,这俩插件的作用分别是使用Git自动部署,和本地简单的服务器。

hexo-deployer-git帮助文档

hexo-server帮助文档

使用 hexo new 文章名称 来新建文章,该命令会成成一个 .md 文件放置在 sources/_posts 文件夹。

编辑完毕以后, 使用 hexo g 将 .md 文件渲染成静态文件,然后启动 hexo-server :

现在便可以打开浏览器访问 来查看我们的博客了!

创建一个裸仓库,裸仓库就是只保存 git 信息的 Repository , 首先切换到 git 用户确保 git 用户拥有仓库所有权

一定要加 --bare ,这样才是一个裸库。

在这里我们使用的是 post-receive 这个钩子,当git有收发的时候就会调用这个钩子。 在 ~/blog.git 裸库的 hooks 文件夹中,

新建 post-receive 文件。

保存后,要赋予这个文件可执行权限

然后打开 _config.yml , 找到 deploy

保存后,尝试将我们刚才写的"hello hexo"部署到服务器

访问服务器地址,就可以看到我们写的文章"Hello hexo",以后写文章只需要:

博客就更新咯!~

使用 Git Hook 自动部署 Hexo 到个人 VPS

Hexo 文档

腾讯云上怎么安装git服务器

搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。

假设你已经有sudo权限的用户账号,下面,正式开始安装。

第一步,安装git:

$ sudo apt-get install git

第二步,创建一个git用户,用来运行git服务:

$ sudo adduser git

第三步,创建证书登录:

收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

第四步,初始化Git仓库:

先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:

$ sudo git init --bare sample.git

Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:

$ sudo chown -R git:git sample.git

第五步,禁用shell登录:

出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改为:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

第六步,克隆远程仓库:

现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:

$ git clone git@server:/srv/sample.git

Cloning into 'sample'...

warning: You appear to have cloned an empty repository.

剩下的推送就简单了。

网站栏目:腾讯云部署git服务器 腾讯云部署git服务器错误
网页网址:https://www.cdcxhl.com/article12/ddsjggc.html

成都网站建设公司_创新互联,为您提供响应式网站做网站网站设计公司网站改版手机网站建设网页设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设