Git server 搭建步骤 on Linux (二)


7.     Generate rsa key 

You may create rsa key on you PC which will manager git(Windows OS need setup msysgit). Here we user the work user (the same pc with gitserver) to manager git.

A.     Generate rsa key:

work@work:~$ ssh-keygen –t rsa

Follow the default hint “Enter”. It will create file :

ü  /home/work/.ssh/id_rsa (私钥)

ü  /home/work/.ssh/id_rsa.pub (公钥)

B.     Upload rsa pub key to gitserver

Upload rsa pub key to gitserver /tmp:

work@work:~$ scp .ssh/id_rsa.pub /tmp

PS:如果git管理员跟git server不同pc话要用scp .ssh/id_rsa.pub [email protected]:/tmp

 

8.     initialize gitosis 

work@work:~$ cd /tmp

work@work:/tmp$ sudo chmod 777 id_rsa.pub

work@work:/tmp$ sudo –H –u git gitosis-init < id_rsa.pub

git is user name we create in Step 6. It will create two folders in /home/git: gitosis and repositories. gitosis-admin.git的仓库 in repositories.

 Chmod to allow user clone gitosis-admin.git:

work@work:~$ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

Currently gitosis setup finish(git server establishment finish). 

9.     Test

A.     Create TEST.git 

Create new folder anywhere(end with .git). Here we create /home/git/git_repo/TEST.git with git user

work@work:~$ su git

$ mkdir TEST.git

$ cd TEST.git

$ sudo git –bare init

$ exit

B.    Initialize TEST.git  version 

Now it is one empty git 仓库,you can add something here with git admistrator user to initialize one version:

work@work:~$ mkdir TEST

work@work:~$ cd TEST

work@work:/TEST$ git init

work@work:/TEST$ echo “test info” > hello.txt

work@work:/TEST$ git add

work@work:/TEST$ git commit –am “initialize version”

work@work:/TEST$ git remote add origin [email protected]:TEST.git

work@work:/TEST$ git push origin master

Remark: 

1. You must do this with git user(we create in step 6)

2. You must user –bare for the initialization (two ‘-‘ before bare)

3. New folder must end with .git

C.    modify visit authority 

We need to modify gitosis config file to allow user to operate git project. 

i.          Create folder to save gitosis-admin仓库的目录

work@work:~$ mkdir gitosis-admin

work@work:~$ cd gitosis-admin

work@work:~$ git clone 

You might change “10.66.2.80” to your own ip addr. 如果clone失败可以试下运行 ssh-add:

work@work:~$ ssh-add

Now gitosis-admin的仓库clone到本地了。进入gitosis-admin仓库目录,会看到:

ü  gitosis.conf

gitosis.conf文件用于配置用户和权限,打开gitosis.conf文件,内容为:

[group gitosis-admin]

Writable = gitosis-admin

Members = git管理员账户名@git管理员机器名

这个就是管理组的权限,members中的用户名就是之前上传的公钥里面的用户名

ü  /keydir/xxx.pub

其中xxx的格式为git管理员账户名@git管理员机器名(work@work)。

/keydir目录下是所有用户的公钥

ii.          添加git普通用户访问权限

下面以用户one为例(one PC机器名为onepc):

1)         Copy one pc上生成的公钥到keydir目录下

2)         gitosis.conf修改为:(红色部分)

[gitosis]

Gitweb =yes   

 

[group gitosis-admin]

Writable = gitosis-admin

Members = git管理员账户名@git管理员机器名

 

[group TEST]

Writable = TEST

Members = git管理员账户名@git管理员机器名 one@onepc

其中gitweb=yes 表示启用对gitweb的支持。添加了one用户对TEST仓库的写权限,同时创建了一个叫TEST的组。

3)         将修改push到服务器:

work@work:~$ git commit –a –m “add user one to modify TEST”

work@work:~$ git push

Currently git server authority set ok and also git server establishment also finish. Team member can now operate git 仓库. 

D.    普通用户operate git仓库入门

下面以上面提到的one用户为例:

one@onepc:~$ mkdir TEST

one@onepc:~$ cd TEST

one@onepc:/TEST$ git clone 

现在TEST就clone下来了,可以对TEST进行修改了

Remark:git clone时“”后面要直接写创建的项目名称,不需要其他的路径

 Reference 

[1]     Pro Githttp://progit.org/book/zh/index.html

[2]     git使用初探

http://archive.cnblogs.com/a/1911799/

[3]     Ubuntu上搭建

http://wenku.baidu.com/view/a117750c4a7302768e9939e7.htmlhttp://xxw8393.blog.163.com/blog/static/3725683420105224424689/

http://blog.csdn.net/ice520301/archive/2011/01/15/6142503.aspx

[4]     Windows,Linux搭建

http://www.doc88.com/p-67839116264.html

[5]     Windows上搭建Git服务器  

http://blog.csdn.net/kechen/archive/2010/11/24/6032398.aspx

[6]     SSH+Git Server on Windows

http://blog.csdn.net/Mr_Von/archive/2010/01/15/5192502.aspx

[7]     用开源ASP.NET MVC程序Bonobo Git Server搭建Git服务器http://www.cnblogs.com/dudu/archive/2011/06/24/git_on_windows.html

你可能感兴趣的:(git)