千家信息网

Git服务器的Gitosis安装配置以及gitignore的使用方法

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"Git服务器的Gitosis安装配置以及gitignore的使用方法",在日常操作中,相信很多人在Git服务器的Gitosis安装配置以及gitignore的使用方法问题上存在疑惑,
千家信息网最后更新 2026年11月01日Git服务器的Gitosis安装配置以及gitignore的使用方法

这篇文章主要介绍"Git服务器的Gitosis安装配置以及gitignore的使用方法",在日常操作中,相信很多人在Git服务器的Gitosis安装配置以及gitignore的使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Git服务器的Gitosis安装配置以及gitignore的使用方法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Git服务器Gitosis安装设置

1、安装 openssh服务器

代码如下:


sudo apt-get install openssh-server openssh-client


2、创建个人公钥和私钥

在默认用户的主目录路径下,运行以下命令,按照提示创建公钥和私钥

代码如下:


ssh-keygen -t rsa


默认生成2048位,如果需要提高安全级别,也可以通过下面的命令创建公钥和私钥

代码如下:


ssh-keygen -t rsa -b 4096


默认情况下,公钥和私钥会保存在~/.ssh目录下,如下所示:

代码如下:


id_rsa id_rsa.pub known_hosts


3、安装 git服务器

代码如下:


sudo apt-get install git-core


4、配置 git服务器

创建git服务器管理用户

代码如下:


sudo useradd -m git
sudo passwd git


创建git仓库存储目录

代码如下:


sudo mkdir /home/git/repositories


设置git仓库权限

代码如下:


sudo chown git:git /home/git/repositories
sudo chmod 755 /home/git/repositories


初始化全局设置

代码如下:


git config --global user.name "myname"
git config --global user.email "myname@server"


5、安装python的setup tool

代码如下:


sudo apt-get install python-setuptools


6、获取并安装gitosis

代码如下:


cd /tmp
git clone https://github.com/res0nat0r/gitosis.git
cd gitosis
sudo python setup.py install


7、配置gitosis

代码如下:


cp ~/.ssh/id_rsa.pub /tmp
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update


8、管理gitosis配置

代码如下:


cd ~
git clone git@hostname:用户名/gitosis-admin.git
cd gitosis-admin/


各个用户按照前面提到的办法生成各自的ssh公钥文件后,服务器管理员把所有人的 ssh公钥文件都拿来,拷贝到keydir目录下。

修改gitosis.conf文件,如下所示

代码如下:


[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = a@server1
[group developers]
writable = helloworld
members = a@server1 b@server2
[group test]
readonly = helloworld
members = c@server3


这个配置文件表达了如下含义:gitosis-admin组成员有a,该组对gitosis-admin仓库有读写权限; developers组有a,b两个成员,该组对helloworld仓库有读写权限; test组有c一个成员,对helloworld仓库有只读权限。 当然目前这些配置文件的修改只是在你的本地,你必须推送到gitserver上才能真正生效。 加入新文件、提交并push到git服务器:

代码如下:


git add .
git commit -am "add helloworld project and users"
git remote add origin ssh://git@hostname/helloworld.git
git push origin master


9、安装apache2

代码如下:


sudo apt-get install apache2


10、安装gitweb

代码如下:


sudo apt-get install gitweb


11、配置 gitweb

默认没有 css 加载,把 gitweb 要用的静态文件连接到 DocumentRoot 下:

代码如下:


cd /var/www/
sudo ln -s /usr/share/gitweb/* .


修改配置:

代码如下:


sudo vi /etc/gitweb.conf


将 $projectroot 改为git仓库存储目录(例如:/home/git/repositories),保存后刷新浏览器。


如果没有找到项目,你需要将$projectroot/*.git 的属性改为755,让apache用户有可读权限。可以只改你需要让别人通过web访问的那个git。http://localhost/cgi-bin/gitweb.cgi


修改/etc/gitweb.conf 内容:

代码如下:


# path to git projects (.git)
#$projectroot = "/var/cache/git";
$projectroot = "/home/git/repositories";
# directory to use for temp files
$git_temp = "/tmp";
# target of the home link on top of all pages
$home_link = $my_uri || "/";
# html text to include at home page
$home_text = "indextext.html";
# file with project list; by default, simply scan the projectroot dir.
$projects_list = $projectroot;
# stylesheet to use
@stylesheets = ("/gitweb/static/gitweb.css");
# javascript code for gitweb
$javascript = "gitweb/static/gitweb.js";
# logo to use
$logo = "/gitweb/static/git-logo.png";
# the 'favicon'
$favicon = "/gitweb/static/git-favicon.png";
# git-diff-tree(1) options to use for generated patches
#@diff_opts = ("-M");
@diff_opts = ();


12、配置apache2

ubuntu中默认的web目录是/var/www,默认的cgi目录是 /usr/lib/cgi-bin/,安装完成gitweb后,gitweb的gitweb.cgi会自动放置到该目录下。

如果你的cgi路径不是默认的/usr/lib/cgi-bin/,需要将gitweb安装在/usr/lib/cgi-bin中的gitweb.cgi复制到原来配置的cgi-bin路径,并在apache的配置文件/etc/apache2/apache.conf末尾加上以下内容:

代码如下:


SetEnv GITWEB_CONFIG /etc/gitweb.conf

Options FollowSymlinks ExecCGI
Allow from all
AllowOverride all
Order allow,deny

SetHandler cgi-script

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.* /gitweb.cgi/$0 [L,PT]

Git使用gitignore建立项目过滤规则
在进行协作开发代码管理的过程中,常常会遇到某些临时文件、配置文件、或者生成文件等,这些文件由于不同的开发端会不一样,如果使用git add . 将所有文件纳入git库中,那么会出现频繁的改动和push,这样会引起开发上的不便。

Git可以很方便的帮助我们解决这个问题,那就是建立项目文件过滤规则。

git中提供两种过滤机制,一种是全局过滤机制,即对所有的git都适用;另一种是针对某个项目使用的过滤规则。个人倾向于第二种。


以我的一个项目为例,该项目用.net开发,.config文件、包括生成的bin/Debug, bin/Release文件等,我希望不加入git管理。

在代码目录下建立.gitignore文件:vim .gitignore ,内容如下:

代码如下:


#过滤数据库文件、sln解决方案文件、配置文件
*.mdb
*.ldb
*.sln
*.config


#过滤文件夹Debug,Release,obj
Debug/
Release/
obj/

然后调用git add. ,执行 git commit即可。

到此,关于"Git服务器的Gitosis安装配置以及gitignore的使用方法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

代码 文件 配置 服务器 服务 目录 仓库 公钥 项目 方法 权限 用户 管理 使用方法 学习 生成 内容 规则 路径 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网政务服务 腾讯阿里互联网科技 中资互联网科技 互联网公司 科技公司 汇久创客互联网科技 天下捷融互联网科技 互联网公司会议桌创意科技软装饰 互联网汽车科技小镇 互联网科技公司需要的职位 须眉科技是互联网公司吗 恒银科技与互联网金融 荆州市昕露互联网络科技有限公司 亳州好赞互联网科技有限公司 互联网科技创新的路径 上海钢联属于互联网科技股吗 广州互联网高科技取餐柜 互联网界的黑科技 互联网科技和医药行业 广西泛欧互联网科技有限公司 杭州融税互联网科技有限公司 高科技互联网 安徽鑫晟辉互联网科技 北京互联网络科技有限公司 创业天下互联网科技有限公司 苏州五指互联网络科技有限 辽宁互联网新科技 互联网媒体平台算高科技产业 深圳市罗太互联网科技有限公司 广东工业互联网大赛深圳学泰科技 北京天晋互联网科技有限公司
0