假设CentOS6.5的IP地址为192.168.0.10,centos上有一个普通用户skefer以及root超级用户 Win7的IP地址为192.168.0.20,用户名为 tangpeng 1.Centos6.5上登录用户为skefer 1.执行以下命令安装git环境 [skefer@localhost ~]$ sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel git 2. 输入git --version 查看git是否安装好 [skefer@localhost ~]$ git --version #如果安装好的话,应该输出 git version 1.7.1等信息 3.创建Git专用用户组和用户名 #切换到root模式 [skefer@localhost ~]$ su root #添加git组 [root@localhost ~]# groupadd gitgroup #创建git用户 #-d /git的意思是将git用户的主目录指定为/git,-g gitgroup的意思是设置gitgroup为git这个用户所在用户组 #如果不想修改默认主目录,可以这样写 useradd -d /home/git -g gitgroup -m git #创建git主目录 [root@localhost ~]# mkdir /git #创建git用户 [root@localhost ~]# useradd -d /git -g gitgroup -m git #为git创建密码 [root@localhost ~]# passwd git #修改权git用户主目录权限 [root@localhost ~]# chown - R git:gitgroup /git 4.创建ssh密钥 [git@localhost ~]$ ssh-keygen -t rsa #默认情况下,公钥和私钥会保存在~/.ssh目录下,有这些文件:id_rsaid_rsa.pubknown_hosts #将公钥拷贝到/tmp文件夹下 [git@localhost ~]$ cp .ssh/id_rsa.pub /tmp/git.pub 4. 安装gitosis管理工具 #安装gitosis运行环境 [root@localhost~]#yum install python python-setuptools #下载gitosis并安装 [root@localhost ~]#cd /tmp [root@localhost ~]#git clone git://github.com/res0nat0r/gitosis.git [root@localhost ~]#cd gitosis [root@localhost ~]#python setup.py install #显示Finished processing dependencies for gitosis==0.2即表示成功 #切换到git用户 [root@localhost ~]#su git [git@localhost root]$cd ~ #初始化gitosis [git@localhost ~]$gitosis-init < /tmp/git.pub [git@localhost ~]$ chmod 755 /git/repositories/gitosis-admin.git/hooks/post-update #删除authorized_keys中除了gitosis生成key之外的key [git@localhost ~]$ vi ~/.ssh/authorized_keys #如果有###文字,这个是gitosis生成的,不要去删除。删掉其他的sshkey就行了,不然会造成gitosis无法使用 5.上传客户端的sshkey公共密钥 在win7上安装mysigit,tortoisGIT,安装完毕后,运行附件->Puttygen,生成公钥和私钥,其中私钥保存在本地,将公钥保存为tangpeng.pub 运行git-bash,定位到pub文件所在位置,然后使用scp tangpeng.pubskefer@192.168.0.10:/tmp这个命令,将windows客户端的公钥传到服务器上。(注意,我有skefer用户的密码,可以使用这个账户上传windows客户端的公钥。如果有root的密码,也可以使用root账户上传) 6.配置服务器上的gitosis #配置gitosis [git@localhost ~]$ git clonegit@192.168.0.10:gitosis-admin.git [git@localhost ~]$ cd gitosis-admin/ #添加windows客户端的公钥 [git@localhostgitosis-admin]$ cp /tmp/tangpeng.pub keydir/ 7.添加GIT项目 [git@localhostgitosis-admin]$ vi gitosis.conf #[gitosis] #[group gitosis-admin] #writable = gitosis-admin #members = a@server1 #[group developers] #writable = helloworld #members =tangpeng #保存并同步项目 [git@localhostgitosis-admin]$ git add. [git@localhostgitosis-admin]$ git commit -am "添加helloworld项目,授权该项目为tangpeng使用" [git@localhostgitosis-admin]$git remote add origingit@192.168.0.10/gitosis-admin.git [git@localhostgitosis-admin]$git push origin master 8.在win7客户端上,创建项目并同步到服务器 创建文件夹helloworld 鼠标右击->Git在这里创建版本库->确定 鼠标右击->Git同步 在远端url处,点击管理,增加远端git服务器位置 进入后,远端填写"origin",URL填写"git@192.168.0.10:helloworld.git",putty密钥填写之前win7上使用Puttygen生成的私钥 点击保存->确定 点击推送,然后项目就能推送到远端服务器了。 剩下是git的具体使用方法,可以使用gitbash命令行,也可以使用totoisegit客户端,各有优势。 |
问题1没有权限添加权限
(1)chmod 755/777 文件夹
(2) chown 用户(:用户组) 文件夹 如chown -R git ../../repositories/goldchef.git
问题2 创建新的git库 一定要 git init
添加远程分支
git remote add origin /user/develop/goldchef
添加远程git库
git remote add origin git@139.196.232.166:/goldchef.git