欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

在CentOS搭建Git服务器的详细步骤

程序员文章站 2023-11-09 16:00:46
前言 我们可以github发布一些开源代码的公共仓库,但对于私密仓库就需要收费了。公司内部通常会搭建自己的git服务器,我也通过在自己的服务器上搭建练习一下。 开始前先...

前言

我们可以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完成,让我们看一下文件夹目录

在CentOS搭建Git服务器的详细步骤

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

------------分割线-------------  

1. 查看系统用户组

-d:指定字段的分隔符,默认的字段分隔符为“tab”;
-f:显示指定字段的内容;

cut -d: -f1 /etc/group

2. 查看系统用户

cut -d: -f1 /etc/passwd

3. clone仓库

git clone git@your_gitserver_ip:/home/gitrepo/sample.git

4. push已有仓库

// 以master分支示范
git checkout master
git remote rm origin
git remote add origin git@your_gitserver_ip:/home/gitrepo/sample.git
git push -u origin master

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。