尽管我是一个快乐的(同时也是付费的)GitHub用户,但是我多次想要在我自己的服务器上搭建私人仓库(github会提供给付费用户私人仓库—-译注)。如果你连不上公共网络,或者你受够了呆板的管理,亦或是你只是单纯的想要不同与Github(以及其他类似的网站)所提供的服务,那么搭建你自己的Git服务器将会很有帮助。在Unix(Linux、Mac OSX、 *BSD、 Solaris、AIX)的机器上部署Git服务器并非难事,但是仍然有许多细节需要注意。这里是一个完整的教程。
通过以下的步骤,你将在服务器上搭建并使用你自己的Git服务,例如myhost.example.com。其中的一些步骤,像email通知,限制用户的权限,特定分组的接入管理,都是依据你的要求和现实状况的可选项。还有很多命令,你需要root权限才能执行,所以别忘了用sudo,或者(最好不要)直接切换到root来执行。
为有读写权限的用户建立一个分组。根据你的操作系统,你可以用groupadd命令来实现,用vigr来编辑分组文件,或者直接编辑/etc/group文件。在最后,你会在/etc/group文件中看到如下一行
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
建立新的Git仓库,叫做newrepo
cd /path-to/gitroot
git 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
设置提交(commit)的email通知(commit是一条命令),这样当有新的修改提交到仓库的时候,开发者们将会收到一封关于修改内容一览的电子邮件。
echo 'One-line project description' >description
git 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通知。
cd hooks
cp post-receive.sample post-receive
chmod +x post-receive
从post-receive的脚本中移除掉最后一行注释的#字号,最后语句应该是这样的
./path-to-hooks/post-receive-email
在你的库中先放入一个文件(比如README)。为了避免其他用户在第一次提交时遇到奇怪的错误信息时感到困惑,这是有必要的。
cd to-your-personal-working-directory
git clone myhost.example.com:/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" 这个参数
为仓库的其他用户建立账户。依据你系统的不同,你可以通过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
EOF
exit
改变用户的账户让他们使用受限的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
告诉你的用户,用下面的语句来克隆仓库到本地。
git clone myhost.example.com:/path-to/gitroot/newrepo.git
到了这里,恭喜你,你成功了!
相关推荐
本教程将深入讲解如何在自己的计算机上创建一个Git服务器端,建立远程代码仓库,以便团队成员可以进行协作开发。 一、Git基础概念 在开始搭建服务器之前,我们先了解一些Git的基本概念: 1. 工作目录:本地开发...
个人总结搭建 Git 服务器仓库采用无密登录方式以及 TortoiseGit 的...本文档提供了搭建 Git 服务器仓库、创建 Git 用户、生成 SSH KEY、使用 TortoiseGit 等知识点,旨在帮助读者快速搭建 Git 服务器并进行无密登录。
在搭建 Git 服务器时,我们需要安装 Git 软件,并创建一个专门用于运行 Git 服务的用户。在此过程中,我们需要使用 sudo apt-get install git 命令来安装 Git 软件,然后使用 sudo adduser git 命令来创建一个名为 ...
### Linux下搭建Git服务器步骤详解 #### 环境配置 - **服务器**: CentOS 6.6 + Git (version 1.7.1) - **客户端**: Windows 10 + Git (version 2.8.4.windows.1) #### 第一步: 安装Git 在服务器端与客户端上分别...
而在团队协作中,搭建自己的Git服务器不仅可以更好地控制代码的安全性,还能根据实际需求定制服务,提升团队的开发效率。 本文将以Ubuntu系统为例,详细介绍如何搭建一个基于Gitolite的Git服务器。通过本教程的学习...
在企业环境中,自建git服务器是一项重要的任务,它可以帮助团队高效地进行代码版本控制和协作。下面我们将详细探讨如何在公司内部搭建git服务器,并通过提供的文档和资源来深入理解git的相关知识。 首先,我们需要...
### git服务器的搭建 #### 背景与问题概述 在搭建Git服务器的过程中,可能会遇到各种各样的问题,其中一种常见的问题是由于使用错误的命令(`adduser` 和 `useradd`)导致后续无法正常切换到Git用户。本文将详细...
### Linux下搭建Git服务器知识点详解 #### 一、环境配置 **服务器端环境:** - 操作系统:CentOS 6.6 - Git版本:1.7.1 **客户端环境:** - 操作系统:Windows 10 - Git版本:2.8.4.windows.1 #### 二、Git的...
Linux系统安装Git服务器的过程中,涉及的知识点非常广泛,从基础的Git概念到具体的操作步骤,涵盖了对版本控制系统的理解,分布式与集中式版本控制的比较,以及在Linux环境下安装和配置Git服务器的详细过程。...
在Windows 2003上搭建GIT服务器,你需要安装两种主要软件:Msysgit和Copssh。Msysgit是GIT在Windows平台下的版本,而Copssh是一个SSH服务器软件,它允许通过SSH协议安全地访问Windows系统。你需要从相应的官方网站...
"64位中文Git服务器"指的是在64位操作系统环境下,并且支持中文界面的Git服务环境。这个压缩包文件可能包含了实现这一功能所需的重要组件。 Git-2.11.0-64-bit.exe 是Git客户端的安装程序,适用于64位操作系统。这...
Git服务器客户端搭建文档,Git服务器客户端搭建,Git服务器客户端搭建
Git服务器安装软件GitStack
1. **安装Git服务器**:在服务器上安装Git,通常使用`sudo apt-get install git`(Ubuntu/Debian)或`yum install git`(CentOS/RHEL)。 2. **初始化仓库**:在服务器上选择合适的位置创建空仓库,使用`git init --...
对于中小项目来说这足够了,有了自己的Git服务器会方便很多,虽然网上有可以免费使用的git,但是会有诸多限制,有时候会影响到项目的进行,能搭建一个私有的Git服务器还是很有必要的,而且用于管理公司软件资产很...
然而,在实际工作中,很多组织由于隐私保护或成本考虑,倾向于搭建自己的Git服务器。本文将详细介绍如何在Windows环境下搭建一个本地的Git服务器,并结合SourceTree这一图形化客户端进行项目管理。 #### 二、准备...
"Git服务器搭建详解" Git 服务器搭建是很多开发者和项目管理者需要掌握的重要技能,本文将手把手教你搭建自己的 Git 服务器,从安装 Git 到创建证书登录、初始化 Git 仓库、克隆仓库等步骤,一步一步地指导你完成...
通过以上步骤,你便成功在Linux系统上搭建了一个简单的Git服务器,可供团队成员进行代码版本控制。记得定期备份你的Git仓库,以防数据丢失。此外,根据实际需求,你还可以考虑配置SSL加密、防火墙规则以及权限管理等...
### 搭建基于HTTP协议的Git服务器安装配置说明 #### 一、软件运行环境 在开始之前,确保你的...通过以上步骤,你可以完成从本地开发到远程Git服务器的完整工作流程。这不仅有助于代码管理,还可以提高团队协作效率。