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
那我肯定不说了
更新后