环境说明:

1、fedora21  桌面系统  2、已经配置好yum仓库

一、安装git

# yum install git

1.1 创建git用户

创建git账户并登录,直接指定用户目录到/home/git

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

添加用户 user add
-d:指定用户目录
-m:如果目录不存在则创建
-s:可以指定用户使用的命令

二、创建sample库

创建库很简单,注意使用--bare参数。作为代码仓库服务器并不会在上面修改东西,所以只要有相关提交日子就可以。

$ cd ~

$ git init --bare sample.git

三、设置SSH Key

收集客户端公钥,复制到服务器上。 客户端当前账号RSA或DSA的数字签名文件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上可以直接使用git或TortoiseGit获取。

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

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

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

四、安全问题

为安全考虑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.

五、数据仓库迁移

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

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’。直接右击当前目录,进入Settings把Remote中地址替换掉。没装就用上Git自带的,使用上面命令替换。

Git服务器仓库的搭建和客户端使用方法的更多相关文章

  1. 最新搭建GIT服务器仓库

    新开了一个项目,现在需要将代码放在公司GIT服务器上面.所以这里需要了一些问题..记录一下.因为原来公司这边的服务器的git用户都是创建好的.这里没有创建.需要的可以看看:http://www.cnb ...

  2. git服务器gitlab之搭建和使用--灰常好的git服务器【转】

    转自:http://blog.csdn.net/zy416548283/article/details/38057925 git服务器比较有名的是gitosis和gitolite,这两个管理和使用起来 ...

  3. git服务器gitlab之搭建和使用

    git服务器比较有名的是gitosis和gitolite,这两个管理和使用起来稍微有些复杂,没有web页面,而gitlab则是类似于github的一个工具,github无法免费建立私有仓库,并且为了代 ...

  4. linux下git远程仓库的搭建

    一.服务器环境 ubuntukylin-16.04-server-amd64 二.远程服务器创建一个名字叫git的用户,专门用于管理git仓库. $ adduser git 三.安装git.服务器端和 ...

  5. git服务器的简单搭建

    安装git 安装git,参考:https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git 创建git仓库 使用ro ...

  6. (转)初学Git及简单搭建git服务器和客户端

    终于搞定,mac自己作为git服务器,mac也是客户端,如何免登 从另外一个linux服务器的上传公钥得到提示 ssh-copy-id -i ~/.ssh/id_rsa.pub git@192.168 ...

  7. git 服务器搭建,在自己服务器上搭建私有仓库

    创建一个简单的私人Git版本控制服务器,首先得有个服务器(屁话).这种方式适合人比较少的情况,管理不需要很复杂,只要增加几个账号就能搞定. 如下面的情况,有一个服务器,两个客户端. 服务器:Debia ...

  8. ubuntu完美搭建git服务器【转】

    转自:http://blog.csdn.net/tommy_wxie/article/details/38779667 最近公司项目需要用到Git来管理项目,正好逢周末花了点时间在虚拟机的unbunt ...

  9. Ubuntu16 搭建Git 服务器

    刚入职一个月左右,昨晚公司给培训了SVN和Git的使用.之前在研究生期间,和导师做项目就一直使用git做版本管理.想起研究生有一段时间,git总出错(秘钥都不好使了,只有某个机器生成的rsa key ...

随机推荐

  1. Java Runtime Data Area

    java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个区域,这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖着用户的线程的启动和结束而建 ...

  2. [转]操作xml,将xml数据显示到treeview的C#代码

    XmlDocument xml = new XmlDocument(); private void Form1_Load(object sender, EventArgs e) { CreateXML ...

  3. CentOS6.5使用本地光盘做yum源 (参考:http://www.jb51.net/os/RedHat/43343.html)

    一.使用光盘做yum源安装软件 mkdir /media/CentOS  #新建CentOS挂载目录 mount -t auto /dev/cdrom /media/CentOS #挂载CentOS光 ...

  4. Ubuntu系统、开发环境配置

    在VMware10下安装成功了Ubuntu 13.10桌面版,刚安装完需要配置很多内容,下面为记录: 1. 更新源: 想了解更新地址的可以查看apt-get的源列表文件 $ sudo gedit /e ...

  5. C语言中float,double类型,在内存中的结构(存储方式)

    C语言中float,double类型,在内存中的结构(存储方式)从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以doubl ...

  6. Day18 Django之路由系统、模板语言、Ajax、Model

    一.路由系统 1.创建Django项目 django-admin startproject day18 cd day18 python3 manage.py startapp app01 2.app0 ...

  7. SNN--Second Name Node

    NameNode有这么几个配置: Property Description Suggested value dfs.name.dir Directory in NameNode’s local fil ...

  8. Django1.7.1设置TEMPLATE_DIRS

    首先附上我的django工程目录结构: mysite│ db.sqlite3│ manage.py│├─mysite   │ settings.py   │ urls.py   │ views.py  ...

  9. imacros实现Excel数据自动录入到网页中

    一.工具选择 最近接到一个项目,需要将excel数据逐条录入.保存到网页中.经过搜集资料,能实现功能的大概有以下几种方式,按键精灵.autoit.imacros.python+selenium. 按键 ...

  10. iOS MD5加密算法

    考虑到用户账户安全,对用户的登录密码进行MD5加密 什么是MD5加密呢...懒了就不在这搬砖了,大家可以自己搜索查查,在此记录下代码,以供以后学习查询! 下面,直接上代码... // 需要倒入这个头文 ...