Debian Wheezy本地Git服务器与Git Lite工作流

使用Git Lite工作流程的Debian Wheezy本地Git服务器

介绍

这个方法描述了一个小团队的共享本地git [1]服务器设置。 任何曾经使用传统版本控制系统的人都熟悉的存储库布局。

教程目标之一是显示准备服务器的详细步骤(由于其权威角色,这里称为库),并在GithubGitorious [2,3]等公共服务器上发布代码。 al。

第二个目标是在团队开发中引入Git Lite Workflow 。 这作为gits强大的分支和合并功能的介绍。 您的个人喜爱的工作流程可能与此模型不同。 对于功能丰富的工作流程,虽然更复杂,请参阅nvie [4]。

为了方便描述,我们有两个团队成员。 爱丽丝谁编码并负责所有版本。 第二个团队开发人员是比尔 。 他们的共享git服务器的私有IP地址为192.168.0.100

他们都为一个开源友好的公司Example with domain example.com工作Alice已经在Github上建立了一个项目库,网址为https://github.com/alice/My-Module.git

如果要重播此方法,请设置一个免费的公共Github仓库。 遵循Githubs说明,但不要添加README.gitignore文件。 这样可以将现有存储库推送到此Github资源库。

本教程已在Debian Wheezy上进行了以下版本的测试:

$ uname -a ; lsb_release -d ; git --version ; ssh -V
Linux debinix 3.2.0-4-686-pae #1 SMP Debian 3.2.32-1 i686 GNU/Linux
Description: Debian GNU/Linux testing (wheezy)
git version 1.7.10.4
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012

在服务器上安装git

安装git并在仓库服务器上创建一个git1用户,以授权git push和pull访问。 作为一个额外的预防措施,限制这个git1用户只使用一个名为git-shell的有限的shell工具进行git活动 。 这是包含在git中。 以此作为shell,我们的git1用户无法对git服务器进行正常的shell访问。

# aptitude install git

adduser脚本中为此git1用户添加新密码,并使用例如Git Group 1作为全名

# adduser --shell /usr/bin/git-shell git1

要使用这个共享的git软件仓库, AliceBob必须知道这个密码才能在这个项目中作为一个团队进行协作。 如果需要非常细粒度的访问控制,请查看gitolite项目[5]。

确认git1用户shell设置为git-shell

# cat /etc/passwd | grep git1

Git第一次设置包括添加软件仓库用户信息:

# git config --system user.name "Git Depot"
# git config --system user.email "root@example.com"

如果安装了shell,则可以远程执行服务器任务。 如果尚未安装,请安装:

# aptitude install openssh-server

在服务器上创建共享的git项目库

仓库的根是例如在/ srv下创建的:

# mkdir /srv/git1
# chown root:git1 /srv/git1
# chmod 0750 /srv/git1

创建一个项目并将其命名为My-Module.git

# mkdir /srv/git1/My-Module.git
# chmod 0750 /srv/git1/My-Module.git

在项目目录中初始化一个裸git仓库:

# cd /srv/git1/My-Module.git
# git --bare init
# chown -R git1:git1 /srv/git1/My-Module.git

重复这五个步骤,在仓库服务器上设置一个新的项目。

git用户的项目认证

用户使用ssh密钥进行身份验证。 AliceBill不需要键密码,因为服务器上的git使用git1帐户密码进行授权。 注意:如果已经存在,则不需要创建新的ssh密钥。 也可以用于git服务器。

Alice工作站上,将用户切换到alice并在创建密钥时接受默认的ssh-keygen选项:

# su alice
$ ssh-keygen

这在目录〜/ .ssh中创建了id_rsa.pub文件。

将其公钥复制到仓库服务器(而不是私钥!)。

$ exit
# scp /home/alice/.ssh/id_rsa.pub root@192.168.0.100:/tmp

使用ssh访问地址192.168.0.100的仓库服务器:

# ssh root@192.168.0.100
root@192.168.0.100's password: *********

在服务器上登录后,将该密钥附加到/home/git1/.ssh中的 git1 authorization_keys文件。 可以使用shell脚本添加新用户:

# cd /usr/local/bin
# nano ssh.addkey

在此文件中添加:

#!/bin/sh
test  !  -d  /home/$1/.ssh && mkdir  /home/$1/.ssh
chmod  0700  /home/$1/.ssh
cat  /tmp/id_rsa.pub  >>  /home/$1/.ssh/authorized_keys
chmod  0600  /home/$1/.ssh/authorized_keys
chown  -R  $1:$1  /home/$1/.ssh
rm  /tmp/id_rsa.pub

保存它并使此脚本可执行:

# chmod 0700 ssh.addkey
# exit

对此脚本添加适当的错误检查。 无论何时需要将新用户添加到群发服务器上的git1组中,如下所示:

# ssh root@192.168.0.100 ssh.addkey git1

不要忘记将ssh密钥复制到服务器上的目录/ tmp上。

桌面(爱丽丝)git准备

alice机器上安装gitgitk (修订树可视化程序):

# aptitude install git
# aptitude install gitk

添加一些关于爱丽丝的信息

# su alice
$ git config --global user.name "Alice"
$ git config --global user.email "alice@example.com"

继续并在〜/ .gitconfig中添加一些有用的设置:

$ nano ~/.gitconfig

在文件中添加这些行:

[user]
    name = Alice
    email = alice@example.com
[color]
    ui = auto
[core]
    editor = /bin/nano
[alias]
    com = commit
    sta = status
    sw2 = checkout
    nbr = checkout -b
    vhi =  <see Note 2>
    vbr = branch -a
    vre = remote -v
    mer = merge --no-ff
    mef = merge --ff-only
    dif = diff --staged

合并选项--no-ff可帮助维护历史记录,在将其提交到特定功能之后,该历史记录被合并到另一个分支中。

当然,您可以将任何您喜欢的开发文件放在项目目录中,但为了这个目的, Alice计划一个新的Perl模块。 Alice明智地启动了新的Perl项目,并安装了一个全面的Perl存档网络( CPAN [6])发行版,可以帮助您创建一个名为Module :: Starter :: PBP的好的起始文件集。

# aptitude install libmodule-starter-pbp-perl

要设置模块启动器 (即设置其配置和模板),请以用户alice运行:

$ perl -MModule::Starter::PBP=setup
Creating /home/alice/.module-starter/PBP...done.
Creating /home/alice/.module-starter/PBP/t...done.
Creating /home/alice/.module-starter/config...
Please enter your full name: Alice Wonderland
Please enter an email address: alice@example.com
Writing /home/alice/.module-starter/config...
done.
Installing templates...
/home/alice/.module-starter/PBP/Build.PL...done
/home/alice/.module-starter/PBP/Makefile.PL...done
/home/alice/.module-starter/PBP/README...done
/home/alice/.module-starter/PBP/Changes...done
/home/alice/.module-starter/PBP/Module.pm...done
/home/alice/.module-starter/PBP/t/pod-coverage.t...done
/home/alice/.module-starter/PBP/t/pod.t...done
/home/alice/.module-starter/PBP/t/perlcritic.t...done
Installation complete.

配置文件位于〜/ .module-starter

选项 :要直接从CPAN安装最新的Module :: Starter :: PBP模块,请使用Perl安装程序工具cpanminus 。 作为根安装cpanminus

# aptitude install cpanminus
# cpanm Module::Starter::PBP

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏