4.5 服务器上的 Git - Git 守护进程

2023-10-31

4.5 服务器上的 Git - Git 守护进程


版本说明

版本 作者 日期 备注
0.1 loon 2019.3.25 初稿

目录

Git 守护进程

接下来我们将通过 “Git” 协议建立一个基于守护进程的仓库。 对于快速且无需授权的 Git 数据访问,这是一个理想之选。 请注意,因为其不包含授权服务,任何通过该协议管理的内容将在其网络上公开。

如果运行在防火墙之外的服务器上,它应该只对那些公开的只读项目服务。 如果运行在防火墙之内的服务器上,它可用于支撑大量参与人员或自动系统(用于持续集成或编译的主机)只读访问的项目,这样可以省去逐一配置 SSH 公钥的麻烦。

无论何时,该 Git 协议都是相对容易设定的。 通常,你只需要以守护进程的形式运行该命令:

git daemon --reuseaddr --base-path=/opt/git/ /opt/git/

–reuseaddr 允许服务器在无需等待旧连接超时的情况下重启,–base-path 选项允许用户在未完全指定路径的条件下克隆项目,结尾的路径将告诉 Git 守护进程从何处寻找仓库来导出。 如果有防火墙正在运行,你需要开放端口 9418 的通信权限。

你可以通过许多方式将该进程以守护进程的方式运行,这主要取决于你所使用的操作系统。 在一台 Ubuntu 机器上,你可以使用一份 Upstart 脚本。 因此,找到如下文件:

/etc/event.d/local-git-daemon

并添加下列脚本内容:

start on startup
stop on shutdown
exec /usr/bin/git daemon \
    --user=git --group=git \
    --reuseaddr \
    --base-path=/opt/git/ \
    /opt/git/
respawn

出于安全考虑,强烈建议使用一个对仓库拥有只读权限的用户身份来运行该守护进程 - 你可以创建一个新用户 git-ro 并且以该用户身份来运行守护进程。 为简便起见,我们将像 git-shell 一样,同样使用 git 用户来运行它。

当你重启机器时,你的 Git 守护进程将会自动启动,并且如果进程被意外结束它会自动重新运行。 为了在不重启的情况下直接运行,你可以运行以下命令:

initctl start local-git-daemon

在其他系统中,你可以使用 sysvinit 系统中的 xinetd 脚本,或者另外的方式来实现 - 只要你能够将其命令守护进程化并实现监控。

接下来,你需要告诉 Git 哪些仓库允许基于服务器的无授权访问。 你可以在每个仓库下创建一个名为 git-daemon-export-ok 的文件来实现。

$ cd /path/to/project.git
$ touch git-daemon-export-ok

该文件将允许 Git 提供无需授权的项目访问服务。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

4.5 服务器上的 Git - Git 守护进程 的相关文章

  • 如果使用 Maven,是否应该忽略 VCS 中 Eclipse 特定的文件?

    我知道为什么不将 Eclipse IDE 特定的文件提交到像 Git 我实际上正在使用的 这样的 VCS 中 这就是我使用 Maven 并让它为您生成这些文件的原因之一not将它们置于版本控制之下 但我想知道 是否应该在 gitignore
  • 如何使用 git-svn 切换 svn 存储库?

    我有许多使用 git svn 创建为 SVN 存储库克隆的 git 项目 我们已将 SVN 存储库迁移到新的提供商 因此 URL 现在已更改 如何更新 git 克隆的远程 SVN URL 一种可能性是我从新的 SVN 存储库重新克隆 但我不
  • .gitattributes 没有什么区别,在使用 git difftool 时尝试跳过文件

    我已经阅读了 Git Pro 网站 并且在 StackOverflow 上阅读了多个答案 但遗憾的是我根本无法让 gitattributes 为我工作 每当我使用git difftool 它将尝试显示二进制文件之间的差异 例如图像文件 PN
  • 使用 git 组织多个项目的最佳方式是什么

    我有 5 10 个独立项目 希望使用 Git 将其置于版本控制之下 组织项目 存储库的最佳方式是什么 每个项目使用一个存储库 对我的所有工作使用一个存储库 并为每个项目使用子目录 或者完全不同的东西 什么对你最有效 为什么 我肯定会说每个项
  • 如何欺骗 git-svn 来识别使用 svn 进行的合并?

    我们有一个 SVN 设置 具有稳定的主干和不稳定的开发分支 开发工作 大部分 在分支上完成 然后在部署之前合并到主干 我使用 git svn 作为我的 SVN 客户端 我从unstable到trunk的合并过程如下 git svn fetc
  • 如何计算目录的 git 哈希对象?

    有人有在目录上使用 git hash object 的示例吗 它在文件上很容易工作 但在目录上却不能像我期望的那样工作 git hash object c somefile txt git hash object t tree c some
  • Git 合并提交[重复]

    这个问题在这里已经有答案了 我是 git 的新手 并且非常喜欢它 在新分支中开发时 我不断提交应用程序的各种开发 状态 现在我必须检查它以进行审查 但不希望所有内容都进入不同的提交 不同的评论和 ID 我怎样才能像第一次一样推送所有更改 g
  • 在 git 中标记多个分支?

    我有一个有两个分支的 git 存储库 一个用于制造 测试的代码 另一个是实际的生产固件 它们几乎相同 现在是时候剪切一个版本并发送给制造商了 所以我自然想在两个分支上放置一些适当的标签 但是 似乎 git 不允许我在两个分支上放置相同的标签
  • 从 Jenkins Pipeline 捕获 shell 脚本输出

    我正在尝试提取 git 分支并在 Jenkinsfile 中提交信息 如下所示 def commit sh returnStdout true script git rev parse HEAD trim def branch sh ret
  • 如何撤消成功的“gitcherry-pick”?

    在本地仓库中 我刚刚执行了git cherry pick SHA没有任何冲突或问题 然后我意识到我不想做我刚才所做的事情 我还没有把这个推到任何地方 我怎样才能去掉这个樱桃镐 我想知道是否有办法做到这一点 当我有其他本地更改时 当我没有其他
  • 是否可以选择 Dependabot 应打开 PR 的特定分支?

    正如标题所示 在 GitHub 上是否可以手动选择 Dependabot 应打开其 Pull 请求的分支 据我所见 它会针对存储库设置中设置为主要分支的分支打开 PR 但是否可以选择另一个分支 根据文档 https docs github
  • git-review -> 将草稿提升为代码审查

    我创建了一个 Gerrit 草稿 git review D 完成草稿后 如何创建代码审查以便最终将其合并到主版本中 如果我只是这样做 git review 我得到这个输出 git review remote remote Processin
  • 意外推送提交:更改 git 提交消息

    在我的本地存储库中 我有一次提交的提交消息不正确 我已经发布了错误的提交消息git push 现在 远程存储库 由 GitHub 托管 也有错误的提交消息 我已经尝试过了git commit amend 但发现在这种情况下它对我不起作用 因
  • Git Svn 的问题,为什么为什么我永远不能 dcommit?

    我有一个 git svn 存储库 git svn clone http myrepo myrepo 我不想在master工作 git checkout b development 黑客了一段时间 git checkout master gi
  • 如何查看 Git 中分支的远程更改?

    我在学习 Git 的时候肯定忽略了一些东西 毕竟我对此还很陌生 我的同事说他推迟了他对我在远程存储库中的提交所做的一些更改 然而 git log 没有这个新推送的记录 我怎样才能看到他推了什么 从而知道要拉哪个分支 你必须git fetch
  • 如何让 git 忽略目录的所有内容?

    我有一个 git 目录 其中包含一大堆文件 然后有一个名为 sessions 的目录 sessions 包含我的 web py 程序的 cookie 信息 我需要将 sessions 文件夹保留在 git 存储库中 因为如果没有该文件夹 程
  • 变基中的传入和当前

    有一个与此类似的问题 但其范围太笼统 而且响应过于复杂 我的问题是非常准时 当从我的分行MyBranch并进行像这样的变基git rebase master并发生冲突 这是传入的变化 哪个是目前的变化 请不要关闭这个问题 将其链接到之前所说
  • 如何在 Git 中创建多个阶段

    使用 Git 时 可以按照以下方式暂存文件https githowto com staging changes https githowto com staging changes 所以通常 git add file1 git commit
  • 执行“挤压和合并”后可能出现问题?

    I used Squash and Merge用于合并dev分支到main因为我不想要来自的一些提交消息dev出现在的分支main但现在我发现main比 dev 提前 1 次提交 并且该图显示 两者之间没有联系dev and main 这是
  • git:更改样式(空白)而不更改所有权/责任?

    我们有一个庞大的 古老的代码库 需要大量的清理 我们一直都有编码标准 每个人都试图遵循它们 但它们没有得到执行 因此随着时间的推移 出现了很多违规行为 其中许多只是空格问题 例如使用制表符而不是空格 或者使用制表符代替空格 不应有任何空格

随机推荐

  • 两个集合相等的例题_集合间的基本关系,你懂了吗?

    集合间的基本关系 在集合间的基本关系这一部分 首先要了解什么是子集 什么是真子集什么是集合相等 什么是空集 子集 一般的对于两个集合AB如果集合A中任意一个元素都是集合B中的元素 我们就说这两个集合有包含关系 称集合A为集合B的子集 记作A
  • 运算符

    运算符包括赋值运算符 算术运算符 逻辑运算符 位逻辑运算符 位移运算符 关系运算符 自增自减运算符 大多数运算符都是二目运算符 即运算符位于两个表达式之间 单目运算符的意思是运算符作用于单个表达式 一 赋值运算符 赋值语句的作用是把某个常量
  • 在C/C++代码中使用SSE等指令集的指令(5)SSE进行加法运算简单的性能测试

    下面是一个简单的测试SSE指令性能的程序 可以看到明显的性能提升 说明 程序中的timing h使用的是http blog csdn net gengshenghong article details 6973086中介绍的时间间隔获取方法
  • 关于特征值分解后续

    已经尝试将double型数据写成的特征值分解模块用在盲源分离的工程中 由于精度的问题 在频率较低的情况下可以分解成功 但是一旦频率过高 分解出的三路信号频率在一个位置 不满足要求 接下来准备看一下关于SVD分解运用在fpga中的文章 希望在
  • 在设计软件测试用例的原则,设计软件测试用例需要遵循的四条原则

    测试 由于成本因素的介入 决定了工程中设计好的测试用例原则不只有 覆盖住所要测试的功能 这一条 下面是我根据自己的工作经验总结出的其它四条原则 在这里抛砖引玉 希望大家拍砖和指正 这些原则特别是针对那些需要被自动化 并且是要被经常执行的测试
  • node js 路由模糊匹配_我们为什么需要Node中间层

    首先跳出前端 要看清node中间层在整个服务承担什么角色 首先我们要跳出前端的视野 把自己视角提示一个level 去鸟瞰整个项目 互联网时代其实就是信息时代 我们都是在利用数据交换 来产生价值 一个最简单的数据流 前端 gt 后端 gt 数
  • mysql基础知识点回顾(精简,不包含存储过程等)

    数据库的基础知识 数据分类 结构化数据 能够使用统一的结构表示的数据 如数字 字符等 半结构化数据 介于完全结构化和完全无结构化之间 如xml和html等 非机构化数据 长度可变 不能使用统一的结构表示的数据 如图像 音频 数据库的分类 关
  • 用Python实现简单登录注册小程序

    判断文件是否存在 pi 1 while pi lt 2 try a open mima a close except a open mima w a close else pi 3 a open mima r str 1 for line
  • 网卡获取ip地址失败

    linux redhat虚拟机上网卡获取ip地址失败 网卡设置为自动获取ip的 重启network服务提示如下信息 Bringing up interface eth0 RTNETLINK answers No such device 查看
  • android O以后版本 自定义Notification

    最近在使用通知的时候 发现方法执行后 没有弹出通知 而是提示下面的错误 Developer warning for package com example test Failed to post notification on channe
  • HTTP和SOAP完全就是两个不同的协议

    HTTP和SOAP完全就是两个不同的协议 HTTP只负责把数据传送过去 不会管这个数据是XML HTML 图片 文本文件或者别的什么 而SOAP协议则定义了怎么把一个对象变成XML文本 在远程如何调用等 怎么能够混为一谈 这样说两种协议 H
  • 【Eviews】异方差的检验(图示检验法、white检验法、GQ检验法)与修正(加权最小二乘法)

    异方差 模型中随机扰动项的方差 随 解释变量 的变动而变动 异方差的检验 图示法 先对y x做线性回归 这样才能产生残差resid GQ检验法 切记 先对解释变量x排序 一般是按照升序 再截断样本 取一头一尾 计算残差平方和 构造F检验 得
  • 三数论大小(引用)

    题目描述 输入三个整数 然后按照从大到小的顺序输出数值 要求 定义一个函数 无返回值 函数参数是三个整数参数的引用 例如int a int b int c 在函数内通过引用方法来对三个参数进行排序 主函数调用这个函数进行排序 要求 不能直接
  • 网络爬虫数据解析的四种方式之XPath

    文章目录 前言 四种数据解析方式 数据解析之XPath XPath介绍 在浏览器中安装XPath helper插件 XPath使用方法 通过浏览器测试插件是否安装成功 通过python代码实现用XPath来解析数据 前言 快期末了 有个数据
  • Linux学习之VMware虚拟机安装

    前言 今天是癸卯年正月十五元宵节 在此祝大家元宵快乐 这篇文章主要给大家介绍安装VMware虚拟机的步骤 话不多说 开始安装 安装准备 VWware workstation rhel 8 2 x86 64 dvd iso 64 位操作系统
  • Bash 脚本

    什么是 Bash 简介 Bash GNU Bourne Again Shell 是一个为 GNU 计划编写的 Unix shell 它是许多 Linux 平台默认使用的 shell shell 是一个命令解释器 是介于操作系统内核与用户之间
  • 广度优先搜索(邻接矩阵)

    广度优先搜索 邻接矩阵 1 1一 用数组来存放顶点 vexs 0 A vexs 1 B vexs 2 C vexs 3 D vexs 4 E vexs 5 F vexs 6 G vexs 7 H vexs 8 I 1 2 用邻接矩阵来表示边
  • webrtc 看不到对方画面是什么原因_WebRTC 细节探究

    探究 从了解到理解 从理解到看见 写在前面 WebRTC 的使用并不复杂 可是其中的流程细节还是挺值的深挖的 每个人脑回路不一样 感到困惑的点可能也不一样 这篇主要讲了Signaling这个过程的一些小细节 如果有错欢迎指出一起讨论 深究
  • Windows系统配置maven环境

    windows安装maven 我们为什么要配置maven呢 Maven是统一集中管理好所有的依赖包 不需要程序员再去寻找 Maven项目会有一个 pom xml文件 在这个文件里面 只要你添加相应配置 他就会自动帮你下载相应jar包 不用你
  • 4.5 服务器上的 Git - Git 守护进程

    4 5 服务器上的 Git Git 守护进程 版本说明 版本 作者 日期 备注 0 1 loon 2019 3 25 初稿 目录 文章目录 4 5 服务器上的 Git Git 守护进程 版本说明 目录 Git 守护进程 Git 守护进程 接