mac 系统搭建git服务器,Mac 搭建git服务器

一,建立 git 帐户

1,在用做服务器的机器 Server 上建立 git 帐户。咱们能够经过 System Preferences->accounts 来添加。在这里我添加一个 git 的 administrator 帐户,administrator 不是必须的,在这里仅仅

为了方便

2,设置远程访问

logout 当前帐户,使用 git 帐户登陆;

在 System Preferences->Sharing 中,勾选:Web Sharing 和 Remote Logig。

二,下载安装 gitosis

1,Mac Snow默认已经为咱们安装了 Git 和 Python,可使用以下命令查看其版本信息:

yourname:~ git$

git

--

version

git version

1.7.

3.4

yourname:~ git$

python

--

version

Python

2.6.

1

2,经过命令 "

git clone git://eagain.net/gitosis.git" 来下载

gitosis

yourname:~ git$

git clone git://github.com/res0nat0r/gitosis.git

Cloning into gitosisb2a4c86f5811494a9b02aeb6.html

remote: Counting objects:

614

, done.

remote: Compressing objects:

100

% (

183

/

183

), done.

remote: Total

614

(delta

434

), reused

594

(delta

422

)

Receiving objects:

100

% (

614

/

614

),

93.82

KiB |

45

KiB/s, done.

Resolving deltas:

100

% (

434

/

434

), done.

3,进入 gitosis 目录,使用命令

"sudo python setup.py install" 来

执行 python 脚本

来安装 gitosis。

yourname:~ git$

cd gitosis

/

yourname:gitosis git$

sudo python setup

.

py install

running install

running bdist_egg

running egg_info

creating gitosis.egg-info

……

Using /Library/Python/

2.6/site-packages/setuptools-

0.6c9-py2.

6.egg

Finished processing dependencies for gitosis==

0.2

这里注意 由于建立了普通权限的帐户,因此没法使用sudo命令,使用时会报“xxx is not in the sudoers file.This incident will be reported.”错误github

先在服务器远程管理选择 任何人 而后bash

使用 sudo su -服务器

三,制做 ssh rsa 公钥

1,回到 client 机器上,制做 ssh 公钥。在这里个人使用同一台机器上的另外一个帐户做为

client

。若是做为

client

的机器与做为 server 的机器不是同一台,也是类型的流程:制做公钥,放置到服务的 /tmp 目录下。只不过在同一台机器上,咱们能够经过开启另外一个 terminal,使用 su 切换到 local 帐户就能够同时操做两个帐户。

yourname:~ git$

su local_account

Password:

bash-

3.2$

cd

~

bash-

3.2$

ssh

-

keygen

-

t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/Users/local_account/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /Users/local_account/.ssh/id_rsa.

Your public key has been saved in /Users/local_account/.ssh/id_rsa.pub.

bash-

3.2$

cd

.

ssh

bash-

3.2$

ls

id_rsa        id_rsa.pub

bash-

3.2$

cp id_rsa

.

pub

/

tmp

/

yourame

.

pub

在上面的命令里,首先经过 su 切换到 local 帐户(只有在同一台机器上才有效),而后进入到 local 帐户的 home 目录,使用 ssh-keygen -t rsa 生成 id_rsa.pub,最后将该文件拷贝放置到  /tmp/yourname.pub,这样 git 帐户就能够访问 yourname.pub了,在这里更名是为了便于在 git 中辨识多个 client。

四,使用 ssh 公钥初始化 gitosis

1,不论你是以那种方式(邮件,usb等等)拷贝 yourname.pub 至服务器的 /tmp/yourname.pub。下面的流程都是同样,登入服务器机器的 git 帐户,进入先前提到 gitosis 目录,进行以下操做初始化 gitosis,初始化完成后,会在 git 的 home 下建立 repositories 目录。

yourname:gitosis git$

sudo

-

H

-

u git gitosis

-

init

<

/

tmp

/

yourname

.

pub

Initialized empty Git repository in /Users/git/repositories/gitosis-admin.git/

Reinitialized existing Git repository in /Users/git/repositories/gitosis-admin.git/

在这里,会将该 client 当作认证受信任的帐户,所以在 Git 的 home 目录下会有记录,文件 authorized_keys 的内容与 yourname.pub 差很少。编辑器

yourname:~ git$

cd

~

yourname:~ git$

cd

.

ssh

yourname:.ssh git$

ls

authorized_keys

咱们须要将 authorizd_keys 稍作修改,用文本编辑器打开它,删除里面的"

command="gitosis-serve yourname",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty

" 这一行:

yourname:.ssh git$

open

-

e authorized_keys

而后,咱们对 post-update 赋予可写权限,以便 client 端能够提交更改。

yourname:gitosis git$

sudo

chmod

755

/

Users

/

git

/

repositories

//

gitosis

-

admin

.

git

/

hooks

/

post

-

update

Password:

yourname:.ssh git$

cd

~

yourname:~ git$

cd repositories

/

yourname:repositories git$

ls

gitosis-admin.git

yourname:repositories git$

在上面的命令中能够看到,gitosis 也是做为仓库的形式给出,咱们能够在其余帐户下 checkout,而后对 gitosis 进行配置管理等等,而无需使用服务器的 git 帐户进行。

最后一步,修改 git 帐户的 PATH 路径。

yourname:gitosis git$

touch

~/.

bashrc

yourname:gitosis git$

echo PATH

=/

usr

/

local

/

bin

:/

usr

/

local

/

git

/

bin

:\

$PATH

>

.

bashrc

yourname:gitosis git$

echo export PATH

>>

.

bashrc

yourname:gitosis git$

cat

.

bashrc

PATH=/usr/local/bin:/usr/local/git/bin:$PATH

export PATH

至此,服务器的配置完成。

五,client 配置

1,回到 local 帐户,首先在 terminal 输入以下命令修改 local 的 git 配置:

bash

-

3.2

$

git config

--

global user

.name

"yourgitname"bash-

3.2$

git config

--

global user

.

email

"

yourmail@yourcom.com

"

2,测试服务器是否链接正确,将 10.1.4.211 换成你服务的名称或服务器地址便可。

yourname:~ local_account$

ssh git@

10.1

.

4.211

Last login: Mon Nov  7 13:11:38 2011 from 10.1.4.211

3,在本地 clone 服务器仓库,下面以 gitosis-admin.git 为例:

bash-

3.2$

git clone git@

10.1

.

4.211

:

repositories

/

gitosis

-

admin

.

git

Cloning into gitosis-admin

b2a4c86f5811494a9b02aeb6.html

remote: Counting objects:

5, done.

remote: Compressing objects:

100% (

5/

5), done.

remote: Total

5 (delta

0), reused

5 (delta

0)

Receiving objects:

100% (

5/

5), done.

bash-

3.2$

ls

Desktop        InstallApp    Music        Sites

Documents    Library        Pictures

gitosis

-

admin

Downloads    Movies        Public

bash-

3.2$ git

在上面的输出中能够看到,咱们已经成功 clone 服务器的 gitosis-admin 仓库至本地了。

4,在本地管理 gitosis-admin:

进入 gitosis-admin 目录,咱们来查看一下其目录结构:gitosis.conf 文件是一个配置文件,里面定义哪些用户能够访问哪些仓库,咱们能够修改这个配置;keydir 是存放ssh 公钥的地方。

bash-

3.2$

cd gitosis

-

admin

/

bash-

3.2$

ls

gitosis.conf keydir

bash-

3.2$

cd keydir

/

bash-

3.2$

ls

yourname.pub

到这里说明咱们已经建立好了,接下来就要根据本身的需求来建立仓库添加其余机器了。

在服务器 终端进入到

repositories目录

cd ~

cd repositories

mkdir test.git

cd test.git

git --bare init 而后就能够

git clone git@

10.1

.

4.211

:

repositories

/test

.

git

我是使用的

source tree 直接添加仓库把--经过url克隆--填写url :git@10.1.4.211:repositories/test.git 填进去后点击下面的单元格自动填充,点击克隆便可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值