Git服务器仓库的搭建和客户端使用方法

环境说明:linux

一、fedora21  桌面系统  二、已经配置好yum仓库
git

1、安装gitshell

# yum install gitvim

1.1 建立git用户

建立git帐户并登陆,直接指定用户目录到/home/gitwindows

# useradd git -d /home/git -m -s /bin/bash# su git安全

添加用户 user add
-d:指定用户目录
-m:若是目录不存在则建立
-s:能够指定用户使用的命令 bash

2、建立sample库

建立库很简单,注意使用--bare参数。做为代码仓库服务器并不会在上面修改东西,因此只要有相关提交日子就能够。服务器

$ cd ~app

$ git init --bare sample.gitssh

3、设置SSH Key

收集客户端公钥,复制到服务器上。 客户端当前帐号RSADSA的数字签名文件id_rsa.pub .ssh用户目录中。一般状况下windows在 %userprofile%\.ssh 目录中,Mac~/.ssh目录中。

mac上能够直接使用下面命令复制粘贴板上,或使用ssh上传

$ pbcopy < ~/.ssh/id_rsa.pub

win7上能够打开Git GUI界面有个帮助->show SSH Key菜单,若是没建立过能够点击建立SSH的签名文件,并复制公钥保存到服务器上。若是使用第三方的SSHKey服务,那可能实际位置会有些差别。

生成本地用户的签名文件,并把客户端上公钥导入到服务器上。若是有多个的话能够放在一个目录中,方便导入。若是是团队人比较多这种方式可能就不太适合了。

如把客户端的key文件mymac.pub和mywin.pub导入。

$ ssh-keygen -t rsa -b 4096

$ cat mymac.pub >> ~/.ssh/authorized_keys

$ cat mywin.pub >> ~/.ssh/authorized_keys

3.1 客户端获取sample库,并增长文件上传到服务器

在Linux客户端获取。

$ git clone git@192.168.10.14:/home/git/sample.gitCloning into 'sample'...

warning: You appear to have cloned an empty repository.Checking connectivity... done.

获取成功OK,增长一个文件,并提交到服务器上

$ cd sample

$ cat >> readme.md

first file.^c

$ git add .

$ git commit -m "first commit"

$ git push

3.2 服务器上查看状态

$ git log

commit 8b070256af351b43a74753f0b05969fcfe9c7310Author: moguf <moguf_notify@163.com>Date:   Sun Apr 3 20:49:17 2016 +0800

first commit

3.3 在Win客户端获取

windows上能够直接使用gitTortoiseGit获取。

git@192.168.10.14:/home/git/sample.git

新建一个文件并提交到服务器上。在服务器上经过git log就能看到第二提交的内容。mac客户机上git pull能看到刚才新加的文件。

这样Git服务器仓库功能基本完成。

4、安全问题

为安全考虑Git帐号只容许使用git-shell。在passwd文件中找到git用户,把/bin/bash直接修改为/usr/bin/git-shell 登陆root帐号,并修改git的用户权限。

$ su# vim /etc/passwd

这样git用户只能git-shell命令不能登陆了。

使用 su git 命令就会出现下面提示,git用户就没法登陆到shell,这样就OK了。

# su git

fatal: Interactive git shell is not enabled.

hint: ~/git-shell-commands should exist and have read and execute access.

5、数据仓库迁移

上面的状况是空仓库,若是原来已经有在使用的仓库,想迁移到新仓库。

linux 下切换

先看一下remote的名字。

$ git remote

origin

通常能够看到origin,这个就是原来仓库名称。使用git remote set_url命令更换地址,如新地址是git@192.168.10.14:/home/git/sample.git

$ git pull

$ git remote set-url origin git@192.168.10.14:/home/git/sample.git

$ git push

  • 获取原来最新代码
  • 切换到新地址
  • 提交当前库内容

win7下切换

若是有装‘TortoiseGit’。直接右击当前目录,进入SettingsRemote中地址替换掉。没装就用上Git自带的,使用上面命令替换。

相关文章
相关标签/搜索