linux怎么linux下搭建git服务器器

如何创建你自己的Git服务器 - 文章 - 伯乐在线
& 如何创建你自己的Git服务器
尽管我是一个快乐的(同时也是付费的)Github用户,但是我多次想要在我自己的服务器上搭建私人仓库(Github会提供给付费用户私人仓库—-译注)。如果你连不上公共网络,或者你受够了呆板的管理,亦或是你只是单纯的想要不同与Github(以及其他类似的网站)所提供的服务,那么搭建你自己的Git服务器将会很有帮助。在Unix(Linux、Mac OSX、 *BSD、 Solaris、AIX)的机器上部署Git服务器并非难事,但是仍然有许多细节需要注意。这里是一个完整的教程。
通过以下的步骤,你将在服务器上搭建并使用你自己的Git服务,例如。其中的一些步骤,像email通知,限制用户的权限,特定分组的接入管理,都是依据你的要求和现实状况的可选项。还有很多命令,你需要root权限才能执行,所以别忘了用sudo,或者(最好不要)直接切换到root来执行。
为有读写权限的用户建立一个分组。根据你的操作系统,你可以用groupadd命令来实现,用vigr来编辑分组文件,或者直接编辑/etc/group文件。在最后,你会在/etc/group文件中看到如下一行
repogroup:*:10005:marry,john,violet
repogroup:*:10005:marry,john,violet
其中,repogroup是准许接入这个仓库的组的名字。10005是一个独一无二的分组识别数字,marry,john,violet则是获准接入这个仓库的用户。
决定Git仓库的路径。它既可以放在你的home路径下(e.g. /home/yourname/gitroot),也可以放在一个专用的路径下(e.g. /var/gitroot).
配置权限,让Git用户可以访问这个目录
chmod g+rx /path-to/gitroot
chown :grouprepo /path-to/gitroot
chmod g+rx /path-to/gitrootchown :grouprepo /path-to/gitroot
建立新的Git仓库,叫做newrepo
cd /path-to/gitroot
git init --bare newrepo.git
cd /path-to/gitrootgit init --bare newrepo.git
建立路径认证,以允许用户组访问,同时有针对性的设置Git
cd newrepo.git
chown -R :grouprepo .
git config core.sharedRepository group
find . -type d -print0 | xargs -0 chmod 2770
find . -type f -print0 | xargs -0 chmod g=u
cd newrepo.gitchown -R :grouprepo .git config core.sharedRepository groupfind . -type d -print0 | xargs -0 chmod 2770find . -type f -print0 | xargs -0 chmod g=u
设置提交(commit)的email通知(commit是一条命令),这样当有新的修改提交到仓库的时候,开发者们将会收到一封关于修改内容一览的电子邮件。
echo 'One-line project description' &description
git config --local hooks.mailinglist email-,email-,...
git config --local hooks.emailprefix '[DI-PR] '
git config --local hooks.showrev "git show -C %s; echo"
git config --local hooks.emailmaxlines 100
echo 'One-line project description' &descriptiongit config --local hooks.mailinglist email-a@example.com,email-b@example.com,...git config --local hooks.emailprefix '[DI-PR] 'git config --local hooks.showrev "git show -C %s; echo"git config --local hooks.emailmaxlines 100
通过设置一个称为钩子(hook)的东东,来创建这些email通知。
cp post-receive.sample post-receive
chmod +x post-receive
cd hookscp post-receive.sample post-receivechmod +x post-receive
从post-receive的脚本中移除掉最后一行注释的#字号,最后语句应该是这样的
. /path-to-hooks/post-receive-email
. /path-to-hooks/post-receive-email
在你的库中先放入一个文件(比如README)。为了避免其他用户在第一次提交时遇到奇怪的错误信息时感到困惑,这是有必要的。
cd to-your-personal-working-directory
git clone :/path-to/gitroot/newrepo.git
echo "Short project description" &README.txt
git add README.txt
git commit -a -m "Add README file"
git push origin master # 第一次仅仅需要T"origin master" 这个参数
cd to-your-personal-working-directorygit clone myhost.example.com:/path-to/gitroot/newrepo.gitecho "Short project description" &README.txtgit add README.txtgit commit -a -m "Add README file"git push origin master # 第一次仅仅需要T"origin master" 这个参数
为仓库的其他用户建立账户。依据你系统的不同,你可以通过useradd 或者adduser来实现。
设置用户可以通过公/私钥配对来访问。这包括以下几步:
1)已经有公钥的用户,只需要把公钥发给你就好。
2)没有公钥的用户,必须用ssh-keygen命令来生成一个,然后把.ssh/id_rsa.pub发给你就可以了。
3)之后你必须在他们对应的账户下面建立这种公/私钥配对。复制他的公钥,然后顺序执行下面的命令。
sudo su - username
mkdir -p .ssh
cat &&.ssh/authorized_keys &&\EOF
paste-key-as-one-line
sudo su - usernamemkdir -p .sshcat &&.ssh/authorized_keys &&\EOFpaste-key-as-one-lineEOFexit
改变用户的账户让他们使用受限的shell。如果你想让你添加进来的用户仅仅使用Git,而不是Unix的所有东西,那么就设置他们的账户,让他们只能使用Git。Git提供了这种专为这种需求设计的受限shell。它通常被安装在 /usr/libexec/git-core/git-shell or /usr/local/libexec/git-core/git-shell。因此,对所有你想限制权限的用户,你可以执行以下命令。
sudo chsh -s /usr/libexec/git-core/git-shell username
sudo chsh -s /usr/libexec/git-core/git-shell username
告诉你的用户,用下面的语句来克隆仓库到本地。
git clone :/path-to/gitroot/newrepo.git
git clone myhost.example.com:/path-to/gitroot/newrepo.git
到了这里,恭喜你,你成功了!
关于作者:
可能感兴趣的话题
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线内容团队正试图以我们微薄的力量,把优秀的原创文章和译文分享给读者,为“快餐”添加一些“营养”元素。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2017 伯乐在线&>&linux中搭建git服务器
linux中搭建git服务器
上传大小:215KB
[root@www downloads]#
http://git-/files/git-1.7.9.tar.gz
[root@www downloads]#
tar -xlvf git-1.7.9.tar.gz
[root@www downloads]#
cd git-1.7.5.4
[root@www downloads]#
./configure --prefix=/usr/local/
(使用--prefix参数指定Git的安装路径,git默认的命令都安装在/usr/local/bin目录下,因此如果这里指定的目录非/usr/local/那么如果不设置相应的环境变量git将不可用。因此,尽量指定这个安装路径)...展开收缩
综合评分:4.8(6位用户评分)
所需积分/C币:
下载个数:58
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有5条
下载后不能正常使用.
步骤很详细,搭建成功。
很有用,成功搭建
优质资源,必须推荐
蛮有用的,搭建成功了,多谢
审核通过送C币
电子书《Linux Perf Master》
创建者:zijingshanke
创建者:lijunhu
创建者:chenhongxin
上传者其他资源上传者专辑
LINUX中搭建NIS服务器
linux中搭建ISCSI共享存储
Linux中配置tomcat
操作系统热门标签
VIP会员动态
下载频道用户反馈专区
下载频道积分规则调整V1710.18
开通VIP,海量IT资源任性下载
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
CSDN&VIP年卡&4000万程序员的必选
为了良好体验,不建议使用迅雷下载
linux中搭建git服务器
会员到期时间:
剩余下载个数:
剩余C币:593
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
全站1200个资源免积分下载
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
全站600个资源免积分下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
全站1200个资源免积分下载
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
linux中搭建git服务器最近在学Linux,终于在Linux上用Apache搭建起了Git服务器,在此记录一下。
服务器:阿里云服务器
Linux版本:CentOS 6.5
Apache版本:Apache/2.2.15
Git版本:git 1.7.1
Git访问方式:基于http的基本验证(非SSL)
Apache的安装
1. 安装Apache软件:yum install httpd
2. 设置Apache在服务器启动时运行:chkconfig --levels 235 httpd on
Git的安装与配置
1. 安装git
yum install git
2. 安装 git-core(为了使用git-http-backend&&支持git的CGI程序,apache支持git就靠它)
yum install git-core
3. 创建存放git repository的文件夹,比如这里是/home/git
cd /home && mkdir git && cd git
4. 创建一个空的项目
mkdir git-test && cd git-test
5. 修改上一步创建的文件夹git-test的所有者与所属群组,要让apache能读/写这个文件夹
chown -R apache:apache .
chown命令使用帮助:
Apache的配置
1. 创建用于git用户验证的帐户(用户帐户由apache管理)
1.1 创建新用户
htpasswd -m -c /etc/httpd/conf.d/git-team.htpasswd &username&
然后输入该用户要使用的密码。
1.2 修改git-team.htpasswd文件的所有者与所属群组
chown apache:apache /etc/httpd/conf.d/git-team.htpasswd
1.3 设置git-team.htpasswd文件的访问权限
chmod 640 /etc/httpd/conf.d/git-team.htpasswd
chmod命令使用帮助:
2. 修改apache配置文件httpd.conf
2.1 用vim打开httpd.conf:vi /etc/httpd/conf/httpd.conf
2.2 将光标移至文件结尾:0G
2.3 添加如下的内容:
&VirtualHost *:80&
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv GIT_PROJECT_ROOT /home/git
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
&Location /&
AuthType Basic
AuthName "Git"
AuthUserFile /etc/httpd/conf.d/git-team.htpasswd
Require valid-user
&/Location&
&/VirtualHost&
ServerName是git服务器的域名
/home/git是代码库存放的文件夹
ScriptAlias是将以/git/开头的访问路径映射至git的CGI程序git-http-backend
AuthUserFile是验证用户帐户的文件
2.4 保存并退出:x
3. 重启apache使设置生效
service httpd restart
客户端访问Git服务器
运行以下命令签出git-test项目:
git clone /git/git-test
输入用户名与密码,如果输出下面的信息,就说明签出成功。
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.
参考资料:
阅读(...) 评论()博客分类:
如果使用git的人数较少,可以使用下面的步骤快速部署一个git服务器环境。
1. 生成 SSH 公钥
每个需要使用git服务器的工程师,自己需要生成一个ssh公钥进入自己的~/.ssh目录,看有没有用 文件名 和 文件名.pub 来命名的一对文件,这个 文件名 通常是 id_dsa 或者 id_rsa。 .pub 文件是公钥,另一个文件是密钥。假如没有这些文件(或者干脆连 .ssh 目录都没有),你可以用 ssh-keygen 的程序来建立它们,该程序在 Linux/Mac 系统由 SSH 包提供, 在 Windows 上则包含在 MSysGit 包里:
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/schacon/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/schacon/.ssh/id_rsa.
Your public key has been saved in /Users/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
43:c5:5b:5f:b1:f1:50:43:ad:20:a6:92:6a:1f:9a:3a schacon@agadorlaptop.local
它先要求你确认保存公钥的位置(.ssh/id_rsa),然后它会让你重复一个密码两次,如果不想在使用公钥的时候输入密码,可以留空。
现在,所有做过这一步的用户都得把它们的公钥给你或者 Git 服务器的管理者(假设 SSH 服务被设定为使用公钥机制)。他们只需要复制 .pub 文件的内容然后 e-email 之。公钥的样子大致如下:
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@agadorlaptop.local
2. 架设服务器
首先,创建一个 ‘git’ 用户并为其创建一个 .ssh 目录,在用户主目录下:
$ sudo adduser git
$ mkdir .ssh
接下来,把开发者的 SSH 公钥添加到这个用户的 authorized_keys 文件中。假设你通过 e-mail 收到了几个公钥并存到了临时文件里。只要把它们加入 authorized_keys 文件
$ cat /tmp/id_rsa.john.pub && ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.josie.pub && ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.jessica.pub && ~/.ssh/authorized_keys
现在可以使用 –bare 选项运行 git init 来设定一个空仓库,这会初始化一个不包含工作目录的仓库。
$ cd /opt/git
$ mkdir project.git
$ cd project.git
$ git --bare init
这时,开发人员就可以把它加为远程仓库,推送一个分支,从而把第一个版本的工程上传到仓库里了。值得注意的是,每次添加一个新项目都需要通过 shell 登入主机并创建一个纯仓库。我们不妨以 gitserver 作为 git 用户和仓库所在的主机名。如果你在网络内部运行该主机,并且在 DNS 中设定 gitserver 指向该主机,那么以下这些命令都是可用的:
# 在一个工程师的电脑上
$ 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
这样,其他人的克隆和推送也一样变得很简单:
$ git clone git@gitserver:/opt/git/project.git
$ vim README
$ git commit -am 'fix for the README file'
$ git push origin master
用这个方法可以很快捷的为少数几个开发者架设一个可读写的 Git 服务。
作为一个额外的防范措施,你可以用 Git 自带的 git-shell 简单工具来把 git 用户的活动限制在仅与 Git 相关。把它设为 git 用户登入的 shell,那么该用户就不能拥有主机正常的 shell 访问权。为了实现这一点,需要指明用户的登入shell 是 git-shell ,而不是 bash 或者 csh。你可能得编辑 /etc/passwd 文件
$ sudo vim /etc/passwd
在文件末尾,你应该能找到类似这样的行:
git:x:1000:1000::/home/git:/bin/sh
把 bin/sh 改为 /usr/bin/git-shell (或者用 which git-shell 查看它的位置)。该行修改后的样子如下:
git:x:1000:1000::/home/git:/usr/bin/git-shell
现在 git 用户只能用 SSH 连接来推送和获取 Git 仓库,而不能直接使用主机 shell。尝试登录的话,你会看到下面这样的拒绝信息:
$ ssh git@gitserver
fatal: What do you think I am? A shell? (你以为我是个啥?shell吗?)
Connection to gitserver closed. (gitserver 连接已断开。)
浏览 27681
浏览: 58386 次
来自: 合肥
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'Windows平台下Git服务器搭建
在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享Windows平台下Git服务器搭建,希望可以对大家能有小小的帮助。
top1:Windows平台下Git服务器搭建
&  第一步:下载Java  第二步:安装Java.安装步骤不再详述。  第三步:配置Java环境变量.  右键计算机 = 属性 = 高级系统设置 = 高级 = 环境变量 = 系统变量。  新建:  变量名:JAVA_HOME  变量值:D:/Program Files (x86)/Java/jdk1.6.0_21  2. 新建:  变量名:CLASSPATH  变量值:.;%JAVA_HOME%/lib/dt.%JAVA_HOME%/lib/tools.jar  3. 添加:找到PATH变量,选择编辑。把%JAVA_HOME%/%JAVA_HOME%/jre/bin添加到变量值的结尾处。  第四步:验证Java是否安装成功。  打开命令窗口= 输入CMD = 确定。  在命令窗口中,输入java命令:javac,回车,如果出现如下信息,说明安装成功。  第五步:下载Gitblit.  第六步:解压缩下载的即可,无需安装。  第七步:创建用于资料的。  更多资料: 游戏开发网,最好的游戏编程开发技术网站。  第八步:配置gitblit.properties 。  找到Git目录下的data文件下的gitblit.properties文件,记事本打开。  2. 找到git.repositoriesFolder(资料库路径),赋值为第七步创建好的文件目录。  3. 找到server.httpPort,设定http协议的端口号  4. 找到server.httpBindInterface,设定的IP地址。这里就设定你的服务器IP。  5. 找到server.httpsBindInterface,设定为localhost  6. 保存,关闭文件。  第九步:运行gitblit.cmd 批处理文件。  找到bitblit目录中的gitblit.cmd文件,双击。  2. 运行结果如下,运行成功。  第十步:在中打开,现在就可以使用GitBlit了,默认用户名都是:admin。  第十一步:设置以Windows Service方式启动Gitblit.  在Gitblit目录下,找到installService.cmd文件。  2. 用记事本打开。  3. 修改 ARCH  32位系统:SET ARCH=x86  64位系统:SET ARCH=amd64  4. 添加 CD 为程序目录  SET CD=D:/Git/Gitblit-1.6.0(你的实际目录)  5. 修改StartParams里的启动参数,给空就可以了。  6. 保存,关闭文件。  第十二步:以Windows Service方式启动Gitblit.  双击Gitblit目录下的installService.cmd文件(以管理员身份运行)。  2. 在服务器的服务管理下,就能看到已经存在的gitblit服务了。  3. 平时使用时,保持这个服务是启动状态就可以了。& 搜索“图老师”或者“tulaoshi_com”加关注,每天最新的美食、、、美妆、、手工DIY等生活小技巧,30天变身小巧妇!【扫描下图可直接关注】
点击查看更多与《》相关的文章>>
下面请跟着图老师小编一起来了解下Linux服务器上的PPTP VPN搭建全攻略,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!
《饥荒》搭建服务器图文配置教程分享,小伙伴们知道如何搭建服务器?不知道的话,一定要来看看本篇《饥荒》搭建服务器图文配置教程分享,也许对你会有所帮助哦!
win2000下jsp平台搭建的简单过程,win2000下jsp平台搭建的简单过程
在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享Linux媒体服务器的搭建方法,希望可以对大家能有小小的帮助。
搭建简单的Linux局域网服务器,搭建简单的Linux局域网服务器
Debian学习Linux系统服务器的搭建方法,Debian学习&Linux系统服务器的搭建方法
热门搜索:
FLASH引导线的运用
怎样设置百度导航栏
电脑显示文件名、目录名或卷标语法不正确怎么办
PS图片调色教程 将美女打造出柔美感

我要回帖

更多关于 linux上安装git服务器 的文章

 

随机推荐