zoukankan      html  css  js  c++  java
  • 在CentOS搭建Git服务器 转

    在CentOS搭建Git服务器

    来自 :http://www.jianshu.com/p/69ea5ded3ede

    前言

    我们可以GitHub发布一些开源代码的公共仓库,但对于私密仓库就需要收费了。公司内部通常会搭建自己的Git服务器,我也通过在自己的服务器上搭建练习一下。


    开始前先说一下服务器信息,这里是阿里云的CentOS 6.5 64位操作系统。


    一 确认服务器是否安装Git

    [root@iZ25r8k6ifuZ git]# rpm -qa git
    git-1.7.1-3.el6_4.1.x86_64

    这里也已经安装过了,如果没有安装可以用yum install git 安装。

    二 创建git用户

    这里你可以选择新建一个用户来测试,也可以直接使用你的root进行以下操作。笔者也是看着资料一步一步来的,这里创建一个新用户teslachen进行操作。
    [root@iZ25r8k6ifuZ ~]# useradd tesla
    [root@iZ25r8k6ifuZ ~]# passwd tesla
    更改用户 tesla 的密码 。
    新的 密码:
    无效的密码: 它没有包含足够的不同字符
    无效的密码: 过于简单
    重新输入新的 密码:
    passwd: 所有的身份验证令牌已经成功更新。

    注1:创建用户权限不够请加上sudo;
    注2:设置用户密码太过简单的话会有提示,但依旧可以设置成功。

    三 生成ssh公钥

    许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。
    linux 可以在本机运行ssh-keygen -t rsa生成密钥,把.pub文件拷到服务器上。
    [root@iZ25r8k6ifuZ ~]# su tesla
    [tesla@iZ25r8k6ifuZ root]$ cd ~
    [tesla@iZ25r8k6ifuZ ~]$ mkdir .ssh
    [tesla@iZ25r8k6ifuZ ~]$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/tesla/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/tesla/.ssh/id_rsa.
    Your public key has been saved in /home/tesla/.ssh/id_rsa.pub.
    The key fingerprint is:
    13:bf:75:ba:67:7f:0e:a0:47:7a:fe:25:bc:81:85:c3 tesla@iZ25r8k6ifuZ
    The key's randomart image is:
    +--[ RSA 2048]----+
    | |
    | |
    | . |
    | o . . |
    | S . E o |
    | . O |
    | + = = .|
    | + .o
    .|
    | o+oo+|
    +-----------------+
    [tesla@iZ25r8k6ifuZ ~]$ cd .ssh/
    [tesla@iZ25r8k6ifuZ .ssh]$ cat id_rsa.pub >> ~/.ssh/authorized_keys
    exit

    四 添加tesla到sudoers文件

    tesla用户现在对一些文件夹没有操作权限,修改/etc/sudoers文件来改变他的权限。最高管理员用户用下面命令打开。
    [root@iZ25r8k6ifuZ ~]# visudo
    然后我们在vim中找到下面这行

    root ALL=(ALL) ALL

    按i键开始插入,回车一下在下面一行加上

    tesla ALL=(ALL) ALL

    接着按下esc键,输入 :wq ,回车保存退出

    五 创建Git代码仓库

    [root@iZ25r8k6ifuZ ~]# mkdir /teslaRepo
    [root@iZ25r8k6ifuZ ~]# cd /teslaRepo/
    [root@iZ25r8k6ifuZ teslaRepo]# sudo mkdir teslaProject.git
    [root@iZ25r8k6ifuZ teslaRepo]# chown tesla:tesla /teslaRepo/
    [root@iZ25r8k6ifuZ teslaRepo]# chown -R tesla:git /teslaRepo/
    [root@iZ25r8k6ifuZ teslaRepo]# cd teslaProject.git/
    [root@iZ25r8k6ifuZ teslaProject.git]# sudo git --bare init
    Initialized empty Git repository in /teslaRepo/teslaProject.git/

    这样一个叫teslaProject得Git仓库就创建好了

    六 本地测试使用

    你可以直接在服务器上进行本地测试,也可以直接用你的电脑来测试。下面我是使用自己的MBP来进行的测试。
    localhost:~ okay$ cd Desktop/git/
    localhost:git okay$ mkdir teslaRepo
    localhost:git okay$ cd teslaRepo/
    localhost:teslaRepo okay$ git init
    Initialized empty Git repository in /Users/okay/Desktop/git/teslaRepo/.git/
    localhost:teslaRepo okay$ git remote add origin tesla@123.57.159.74:/teslaRepo/teslaProject.git

    上面的命令在本地创建了一个文件夹并添加了服务器上的远程仓库
    localhost:teslaRepo okay$ touch a.txt
    localhost:teslaRepo okay$ git add a.txt
    localhost:teslaRepo okay$ git commit -m "init commit"
    [master (root-commit) d14cd3b] init commit
    1 file changed, 0 insertions(+), 0 deletions(-)
    create mode 100644 a.txt

    上面的命令在本地创建了一个a.txt并在本地提交了一次
    localhost:teslaRepo okay$ git push origin master
    tesla@123.57.159.74's password:
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 202 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To tesla@123.57.159.74:/teslaRepo/teslaProject.git
    * [new branch] master -> master

    上面的命令将本地代码push到远程服务器上去了,下面我们在本地clone一次看下是否正确

    七 本地clone

    localhost:git okay$ mkdir ttt
    localhost:git okay$ cd ttt
    localhost:ttt okay$ git clone tesla@123.57.159.74:/teslaRepo/teslaProject.git
    Cloning into 'teslaProject'...
    tesla@123.57.159.74's password:
    remote: Counting objects: 3, done.
    remote: Total 3 (delta 0), reused 0 (delta 0)
    Receiving objects: 100% (3/3), done.
    Checking connectivity... done.

    clone完成,让我们看一下文件夹目录


    Slice 1.png


    之前push到服务器上的a.txt文件已经被clone下来

  • 相关阅读:
    《java技术》第三次作业
    《Java技术》第二次作业
    《java技术》第一次作业
    java3
    java2
    java1
    开闭原则
    迪米特原则
    接口隔离原则
    里氏替换原则
  • 原文地址:https://www.cnblogs.com/sekai/p/5979114.html
Copyright © 2011-2022 走看看