服务器端git的安装和gitosis安装

来源:互联网 发布:vivo软件招聘 编辑:程序博客网 时间:2024/05/26 16:01

1. 服务器端git的安装和配置

(1)使用yum源安装git

1.  yum install git

(2)创建git用户并设置密码

1.  #useradd --home /home/git git

2.   #passwd git 

3.  //注意这里要设置一个密码,建议不要不设密码,网上很多资料都不设密码

(3)创建一个git仓库,验证git是否可用

·        在使用git之前,要设置git的两个全局变量,设置方式为:

·         

1.  # git config--global user.name "dylan"

2.  # git config--global user.email "ustc.dylan@email.com"

·        设置git仓库目录的权限

·         

1.  # su - git                         //切换到git用户

2.  $ chmod -R 755/home/git             //修改目录的权限

·        创建并初始化一个repository

·         

1.  $ mkdir/home/git/repo   //假设要创建的repository放在/home/git/repo目录下

2.  $ cd /home/git/repo

3.  $ mkdir test_repo

4.  $ cd test_repo

5.  $ git init --bare

·        测试新创建的repository是否可用

·         

1.  su - test (test为另外一个user或者exit,使用root用户)

2.  $ cd /home/test

3.  $ mkdir repos

4.  $ cd repos

5.  $ git clone /home/git/repo/test_repo

如果显示" Initialized empty Gitrepository in /home/git/repo/test_repo/.git/",则说明成功的clone了一个local repository。之后就可以在此repository下进行开发了,比如,添加一个readme.txt文件。

·         

1.  $ cd test_repo

2.  $ vim readme.txt (创建一个文件)

3.  $ git add . (注意后面有一个[.])

4.  $ git commit -a

5.  $ git push originmaster

     注意:如果此时报错,最大的原因是test_repo的refs和objects目录的权限不够,执行如下操作即可(git server端的repository下的这两个目录)。

1.  $ chmod -R 777 refs/

2.  $ chmod -R 777objects/

 

2.服务器端 gitosis的安装

 (1)python-setuptools的安装(因为gitosis的安装脚本是用python写的)

1.  #yum install python-setuptools

(2)gitosis的安装

1.  #git clonegit://github.com/res0nat0r/gitosis.git//下载gitosis到你想存放的目录下

2.  #cd gitosis

3.  #python setup.pyinstall    //如果没有报错,则说明安装成功

 

3. 客户端(开发机)安装与测试

 

1)重复 1的安装

 

2)# su 到git用户
su - git

 

在开发机上,生产密钥并上传到服务器上
```
ssh-keygen -t rsa   #一路回车,不需要设置密码

#上传公钥到服务器(默认SSH端口22)
scp ~/.ssh/id_rsa.pub  192.168.100.202:/tmp
```

或编辑`/etc/hosts`文件,在`/etc/hosts`文件里添加如下文本:
```
# local git server
192.168.100.202 zgit
```
然后再上传自己的公钥到服务器
```
scp ~/.ssh/id_rsa.pub  zgit:/tmp/

3)# 登录到git服务器


ls /tmp/id_rsa.pub  #显示已经上传的密钥

 

初始化git服务器

# su 到git用户
su - git

 

gitosis-init < /tmp/id_rsa.pub


初始化之后,会在/home/git/repositories创建gitosis-admin.git项目,可以通过维护这个项目来对gitosis进行配置。

除此以外,还需要对gitosis-admin.git/hooks/post-update目录赋上特殊权限:


chmodu+x /home/git/repositories/gitosis-admin.git/hooks/post-update

 

#显示以下信息即表示成功
#Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
#Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/

4)#删除密钥
rm -rf /tmp/id_rsa.pub

```

5)在个人开发机上导出项目管理
```# su 到git用户
su - git

 


mkdir -p /home/git/repo
cd /home/git/repo
git clone git@zgit:gitosis-admin.git

 

 

4.在个人开发机增加及设置管理项目
```
cd /home/git/repo/gitosis-admin

# 查看git服务器已经上传密钥
ls keydir  

cat keydir/ltl@jackliu-ThinkPad.pub  

#ltl@jackliu-ThinkPad.pub为已经上传的开发机生成的公密

#显示密钥 最后的字符串为 密钥用户名 这里为 ltl@jackliu-ThinkPad
vim gitosis.conf

#在文件尾增加以下内容

[group test-git]            # 具有写权限的组名称
writable = test-git         # 该组可写的项目名称
members = ltl@jackliu-ThinkPad  guangyun.ni@yeepay.com     #该组的成员(密钥用户名) 多个用户协同开发时,以空格分隔

# 如果要增加只读的组 参考如下
# [group test-git-readnoly]          # 具有都权限的组名称
# readonly = test-git                # 该组只读的项目名称
# members = ltl@jackliu-ThinkPad     # 该组的成员


#提交修改
git add .
git commit -a -m "add test-git repo"
git push

```

5.在个人开发机上初始,增加及使用项目test-git

```
cd ~/repo  

mkdir test-git   

cd test-git  

git init  

touch readme  

git add .   

git commit -a -m "init test-git"  

git remote add origin git@zgit:test-git.git  

git push origin master  

```

6.增加协同开发者的公钥key到git服务器  
 
 - 执行`cd repo/gitosis-admin/keydir`切换目录
 
 - 把协同开发者的id_rsa.pub 文件里的数据 拷贝到 对应的开发者的`密钥用户名.pub`文件。如把密钥用户名 guangyun.ni@yeepay.com 的 id_rsa.pub 文件中文本 粘贴到 guangyun.ni@yeepay.com.pub 文件里,并保存

 - 然后将添加数据后的目录更新到git服务器
 
 ```

需要说明的是,必须由个人开发机上的keydir目录和gitosis.conf更新到远程服务器,才可以让其他协同开发者一起更新代码。

在windows下的客户端,需要安装git bash和TortoiseGit这两个软件,


Git的安装和配置步骤


1.运行GitExtensions241SetupComplete.msi,在出现的对话框中点击run

             

2.进入欢迎页面单击next

        

3.进入Installation Scope界面选择Installfor all users of this machine单击next

                     

 

 

4.进入Required Software界面,勾选InstallMsysGit和Install KDiff,单击next


                     

5.进入选择安装目录界面,按默认路径,单击next

                      

6.进入Custom Setup界面,按默认设置,单击next

                       

 

 

7.进入Select SSH Clinet界面,选择OpenSSH,单击next



                          

8.开始安装,单击Install

                           


9.KDiff3安装,进入许可证协议界面,单击‘我接受’

                            

 

 

 

10.进入选择组件页面,按默认设置,单击下一步

                             

11.选择安装路径,按默认设置,单击下一

                             

12.勾选Install for allusers,单击下一步

                             

 

 

 

 

 

 

13.是否创建开始菜单中的快捷方式,勾选不要创建快捷方式,单击安装

                              

14.完成安装向导,单击完成

                              

15.进入Git Setup Wizard界面,单击next

                              

 

 

 

16.进入Select Components界面,按默认设置,单击next


                              

17.进入Adjusting your PATHenvironment选择Use Git Bash Only,单击next

                              

18.进入Configuring theline ending conversions,按默认设置,单击next

                              

 

 

 

19.进入Replacing in-usefiles单击next,(如果出错请关闭sh.exe和ssh.exe进程)

                              

20.安装完成,不选择ViewReleaseNotes.rtf单击finish退出

                              

21.Git Extensions安装完成,单击finish退出

                                        

 

 

22.双击桌面上的Git Bash图标,在命令行输入ssh-keygen–t rsa –C “你的mail地址”

                               

23.回车后,如图,按默认路径敲回车键


                               

24.输入密码(可以直接敲回车),已生成密钥对,关闭对话框

                             

 

 

 

 

 

25.进入C:\Documents andSettings\你的用户名\.ssh,新建一个记事本,用于查看id_rsa.pub

                             

 

                                

 

 

 

 

 

                                       

                              

                              

                            



          2. 安装TortoiseGit

              首先,要安装Windows Installer 4.5。

              然后,安装TortoiseGit-1.8.8.0-32bit.msi(当前最新版本)






              最后,安装TortoiseGit中文语言包

              TortoiseGit-LanguagePack-1.8.7.0-32bit-zh_CN.msi



    二、配置、使用TortoiseGit

           1. 设置为中文界面


           2. 建立版本库

               在任意空的文件夹点击鼠标右键,选择“Git 在这里创建版本库”






           3. clone库

               在上面的文件夹点击右键,选择“拉取(Pull)”


               (1) 管理远端


图2-3-1-1


图2-3-1-2

               其中,URL是远端版本库的git地址


              注意,一定要把“localhost”改成IP地址,否则会出现如下错误:git did not exit cleanly (exit code 128)


               (2) 生成PPK文件

                     在“开始”菜单,选择“TortoiseGit”中的“PuttyGen”


                  点击“Generate”按钮,然后,鼠标在图中红色方框的区域内不停的移动,即可生成密钥。


                点击“Save private key”按钮,把生成的密钥保存为PPK文件。


                 确定生成。


                保存到图2-3-1-2中的地址


                 (3) 完成clone库






            4. 提交本地版本库

               在本地版本库中新建立的文件图标均为

               (1) 添加到本地库

                          鼠标右键点击如上图图标的文件,选择“增加”




                           这时,文件图标变为表示添加到本地库成功。


               (2) 提交到本地库

                           鼠标右键点击如上图图标的文件,选择“Git提交(C) ... -> "master"...”


                     会出现提示,设置用户名和邮箱。


                      设置用户名、邮箱和签名密钥(PPK文件)


                     输入日志信息,完成提交。




           5. 推送本地库到服务器

               如果所有文件夹和文件的图标都如图所示,那么我们就可以把本地库推送到版本服务器了。

               在本地库所在根目录(本机为D:\mydoc13\ssfc),点击鼠标右键,选择“TortoiseGit”-〉“推送”






                 

经过测试eclipse git插件通过ssh使用是没有问题的,测试使用的插件为eclipse最新版本(Version: Kepler Release)自带git

 

需要提示一点通过GitBash /eclipse/linux的命令ssh-keygen生成的private keyputtygenTortoiseGit)生成的key的格式是不同的,所以造成了eclipseputtygen的私钥不能通用问题。

 

解决方法【一公钥对应两种不同格式的私钥】:

1:  windows环境安装GitBashmsysgit自带),右键选择Gitbash,进入命令行模式

2:通过ssh-keygen命令生成私钥和公钥默认生成到${user.home}/.ssh目录下(例如:C:\Users\samzhao\.ssh),文件名为id_rsa id_rsa.pub

    ssh-keygen -t rsa -C "samzhao@sohu-inc.com"

3:将公钥信息id_rsa.pub的信息上传到gitlib服务器【ssh keys中】,设置方式

登陆gitlib->点击右上角头像(my prifile)-> SSH public keys区域选择“Add Public Key”->title随便输入->key输入keygen生成的id_rsa.pub里面的内容

4:通过puttygen转换openssh2的ssh-keygen生成的private key的内容。

 打开puttygen->选择load->选择all files->选择id_rsa点击确定后->出现对话框如下

确定后,根据提示保存一个private key,如pri.ppk

 

5:tortoiseGitcolone时使用pri.ppk连接git服务器就可以了,如果使用eclipse的git将使用id_rsa连接,通过window->preferences->general->network connections->general->privatekeys ->添加该项目或者连接的私钥

0 0
原创粉丝点击