shell 删除文件 四、服务器上的 Git(9)

电脑杂谈  发布时间:2018-02-11 20:23:18  来源:网络整理

git$ cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys

2.3 新建空仓库

以下命令是使用git用户操作的

git$ cd /opt/git

git$ mkdir project.git

git$ cd project.git

git$ git init --bare

Initialized empty Git repository in /opt/git/project.git/

2.4 限制用户 git 的活动仅在 Git 相关的范围内

首先你必须确保 git-shell 已存在于 /etc/shells 文件中:

# cat /etc/shells #先查看git-shell是否在/etc/shells 文件中

# which git-shell # 查看git-shell的绝对路径:/usr/bin/git-shell

技术分享图片

使用 chsh <username> 命令修改任一系统用户的 shell:

# chsh git # 直接输入git-shell的绝对路径即可: /usr/bin/git-shell

技术分享图片

这样,用户 git 就只能利用 SSH 连接对 Git 仓库进行推送和拉取操作,而不能登录机器并取得普通 shell。

1.3、用户1操作

注:gitserver可以换成ip地址

# cd myproject

# git init

# git add .

# git commit -m ‘initial commit‘

# git remote add origin git@gitserver:/opt/git/project.git

# git push origin master

1.4、用户2操作

# git clone git@gitserver:/opt/git/project.git

# cd project

# vim README

# git commit -am ‘fix for the README file‘

# git push origin master

注意用户1与用户2的操作不同

1.5、用户获取其他用户推送的信息

这个跟分支相关知识有关,回头再细说这个

5、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


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/sanxing/article-72418-9.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...