zoukankan      html  css  js  c++  java
  • Git服务器仓库的搭建和客户端使用方法

    环境说明:

    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

    收集客户端公钥,复制到服务器上。 客户端当前账号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服务器仓库功能基本完成。

    四、安全问题

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

  • 相关阅读:
    CSS3 经典教程系列:CSS3 线性渐变(linear-gradient)
    JS定义函数
    CSS选择器和jQuery选择器的区别与联系
    jQuery 选择器、遍历方法
    jQuery中$()函数
    JS对象和Jquery对象
    [Alpha]Scrum Meeting#2
    [Alpha]Scrum Meeting#1
    knowledge_docker
    problems_docker
  • 原文地址:https://www.cnblogs.com/noxy/p/6198572.html
Copyright © 2011-2022 走看看