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自带的,使用上面命令替换。

  • 相关阅读:
    LSMW TIPS
    Schedule agreement and Delfor
    Running VL10 in the background 13 Oct
    analyse idoc by creation date
    New Journey Prepare
    EDI error
    CBSN NEWS
    Listen and Write 18th Feb 2019
    Microsoft iSCSI Software Target 快照管理
    通过 Microsoft iSCSI Software Target 提供存储服务
  • 原文地址:https://www.cnblogs.com/noxy/p/6198572.html
Copyright © 2011-2022 走看看