如何搭建linux git服务器,第1张

首先我们分别在Git服务器和客户机中安装Git服务程序(刚刚实验安装过就不用安装了):

[root@linuxprobe ~]# yum install git

Loaded plugins: langpacks, product-id, subscription-manager

This system is not registered to Red Hat Subscription Management You can use subscription-manager to register

Package git-1831-4el7x86_64 already installed and latest version

Nothing to do

然后创建Git版本仓库,一般规范的方式要以git为后缀:

[root@linuxprobe ~]# mkdir linuxprobegit

修改Git版本仓库的所有者与所有组:

[root@linuxprobe ~]# chown -Rf git:git linuxprobegit/

初始化Git版本仓库:

[root@linuxprobe ~]# cd linuxprobegit/

[root@linuxprobe linuxprobegit]# git --bare init

Initialized empty Git repository in /root/linuxprobegit/

其实此时你的Git服务器就已经部署好了,但用户还不能向你推送数据,也不能克隆你的Git版本仓库,因为我们要在服务器上开放至少一种支持Git的协议,比如HTTP/HTTPS/SSH等,现在用的最多的就是HTTPS和SSH,我们切换至Git客户机来生成SSH密钥:

[root@linuxprobe ~]# ssh-keygen

Generating public/private rsa key pair

Enter file in which to save the key (/root/ssh/id_rsa):

Created directory '/root/ssh'

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/ssh/id_rsa

Your public key has been saved in /root/ssh/id_rsapub

The key fingerprint is:

65:4a:53:0d:4f:ee:49:4f:94:24:82:16:7a:dd:1f:28 root@linuxprobecom

The key's randomart image is:

+--[ RSA 2048]----+

| o+ooo |

| oo + |

| + E o |

| o = + = |

| S o o |

| |

| |

| |

| |

+-----------------+

将客户机的公钥传递给Git服务器:

[root@linuxprobe ~]# ssh-copy-id 1921681010

root@1921681010's password:

Number of key(s) added: 1

Now try logging into the machine, with: "ssh '1921681010'"

and check to make sure that only the key(s) you wanted were added

此时就已经可以从Git服务器中克隆版本仓库了(此时目录内没有文件是正常的):

[root@linuxprobe ~]# git clone root@1921681010:/root/linuxprobegit

Cloning into 'linuxprobe'

warning: You appear to have cloned an empty repository

[root@linuxprobe ~]# cd linuxprobe

[root@linuxprobe linuxprobe]#

初始化下Git工作环境:

[root@linuxprobe ~]# git config --global username "Liu Chuan"

[root@linuxprobe ~]# git config --global useremail "root@linuxprobecom"

[root@linuxprobe ~]# git config --global coreeditor vim

向Git版本仓库中提交一个新文件:

[root@linuxprobe linuxprobe]# echo "I successfully cloned the Git repository" > readmetxt

[root@linuxprobe linuxprobe]# git add readmetxt

[root@linuxprobe linuxprobe]# git status

# On branch master

#

# Initial commit

#

# Changes to be committed:

# (use "git rm --cached " to unstage)

#

# new file: readmetxt

#

[root@linuxprobe linuxprobe]# git commit -m "Clone the Git repository"

[master (root-commit) c3961c9] Clone the Git repository

Committer: root

1 file changed, 1 insertion(+)

create mode 100644 readmetxt

[root@linuxprobe linuxprobe]# git status

# On branch master

nothing to commit, working directory clean

但是这次的操作还是只将文件提交到了本地的Git版本仓库,并没有推送到远程Git服务器,所以我们来定义下远程的Git服务器吧:

[root@linuxprobe linuxprobe]# git remote add server root@1921681010:/root/linuxprobegit

将文件提交到远程Git服务器吧:

[root@linuxprobe linuxprobe]# git push -u server master

Counting objects: 3, done

Writing objects: 100% (3/3), 261 bytes | 0 bytes/s, done

Total 3 (delta 0), reused 0 (delta 0)

To root@1921681010:/root/linuxprobegit

[new branch] master -> master

Branch master set up to track remote branch master from server

为了验证真的是推送到了远程的Git服务,你可以换个目录再克隆一份版本仓库(虽然在工作中毫无意义):

[root@linuxprobe linuxprobe]# cd /Desktop

[root@linuxprobe Desktop]# git clone root@1921681010:/root/linuxprobegit

Cloning into 'linuxprobe'

remote: Counting objects: 3, done

remote: Total 3 (delta 0), reused 0 (delta 0)

Receiving objects: 100% (3/3), done

[root@linuxprobe Desktop]# cd linuxprobe/

[root@linuxprobe linuxprobe]# cat readmetxt

I successfully cloned the Git repository

这篇是详细介绍Git的,中间有一部分是怎么去搭建,你可以看下

服务端配置

1、安装git

2、新建一个用户,只能用来上传代码,而不能通过ssh登录,比如git用户

adduser git

chsh -s $(command -v git-shell) git

使用git-shell替换bash ,这样git用户就不能通过ssh登录

这一步会有警告,提示git-shell不在shell列表里,不用担心。

3、添加ssh公钥,在/home/git/ssh/authorized_keys里添加客户端的公钥,一行一个。

如果没有文件,可以新建

mkdir /home/git/ssh

touch /home/git/ssh/authorized_keys

客户端生成公钥的方法是 ssh-keygen,

windows的在C:\Users\用户名\ssh\ 目录下,打开id_rsapub

4、初始化一个空的git仓库

cd /var

git init --bare samplegit

chown -R git:git samplegit

这一步是让目录可以被git用户修改,否则会出现“permission denied”错误。

客户端

1、可以git clone了

git clone git@服务器:/var/samplegit 即服务器上的文件路径

或者ssh,建议ssh,方便设置端口号

git clone ssh://git@服务器:端口号/var/samplegit

安装前提

安装 Hexo 非常简单。需要预先安装:

Nodejs

Git

在 Ubuntu 1404/1504 上安装配置 Nodejs v400 http://wwwlinuxidccom/Linux/2015-10/123951htm

如何在CentOS 7安装Nodejs http://wwwlinuxidccom/Linux/2015-02/113554htm

Ubuntu 1404下搭建Nodejs开发环境 http://wwwlinuxidccom/Linux/2014-12/110983htm

Git 服务器搭建与客户端安装 http://wwwlinuxidccom/Linux

Ubuntu下Git服务器的搭建与使用指南 http://wwwlinuxidccom/Linux/2015-07/120617htm

准备条件做好了之后就可以开始安装Hexo了

安装Hexo

打开Git Bash 执行命令

1

$ npm install -g hexo-cli

创建博客

Hexo安装完成后,分别执行如下命令,Hexo会自动生成需要的文件夹

1

2

3

$ hexo init <folder> ##<folder> 为你指定的文件地址

$ cd <folder>

$ npm install

例如:需要将博客搭建在本地的D:\my_hexo下,则分别执行命令:hexo init D:\my_hexo ,cd D:\my_hexo,npm install

执行完命令后如果没有问题我们就可以执行启动命令来查看我们的博客了

本地预览

1

2

3

$ hexo server ## 启动服务,默认端口4000

$ hexo server -p xxxx ## 自定义端口启动服务

$ hexo clean ## 清除缓存,在页面显示不正常的时候可以执行此命令

然后在浏览器输入http://127001:4000/ 即可访问

创建Repository

登录github 点击右上角的”+”,Create a new repository

Create a new repository

复制刚刚新建的https连接:https://githubcom/Admol/admolgithubiogit

打开你hexo目录下的_configyml

设置deploy信息,如:

1

2

3

4

deploy:

type: git

repository: https://githubcom/Admol/admolgithubiogit

branch: master

设置SSH key

检验是否已存在key

分别执行命令

1

2

cd ~

cd ssh

再执行命令 ls 查看是有已有key文件,一般存在key的话都会显示id_rsapub 和 id_dsapub这两个文件,没有key什么都不会显示

添加一个 SSH key

执行命令(已有key的可以跳过步骤2):

1

2

3

$ ssh-keygen -t rsa -C "your_email@mailcom"

## t 指定密钥类型,默认是 rsa ,可以省略。 -C 设置注释文字,比如邮箱或其他。

然后会提示你 Enter Enter file in which to save the key (/c/Users/you/ssh/id_rsa): [Press enter,这里是输入一个文件名用来保存ssh key,也可以什么都不输,会使用默认的id_rsapub 和 id_dsapub

回车之后,需要输入两次密码(该密码是你push文件的时候要输入的密码,而不是github的密码)

输入密码之后,看见如下显示信息,添加SSH key成功

Github 设置 SSH key

登录github,点击Settings,然后点击 SSH keys ,在这个页面你可以管理你所有的ssh keys

然后点击Add SSH key

用文本编辑器打开刚刚添加的key文件id_rsapub,复制里面的所有的内容

回到github页面,将复制的内容粘贴到刚刚那个页面的key对应的文本框里面,title 可以随便填写

测试ssh key 是否添加成功

在命令行输入:

1

$ ssh -T git@githubcom

会出现一段警告代码,输入yes回车,然后会要求你输入刚刚设置的密码,然后它会和你说:Hi,帅哥约吗

到此SSH key就设置完毕了

部署到Github

打开命令窗口,回到你的hexo博客目录下,如别执行如下命令:

1

2

hexo generate

hexo deploy

等待命令执行完毕后,可以查看代码是否已提交到github上,然后在浏览器输入admolgithubio就可以访问了

新建页面

1

$ hexo new page 'pageName'

执行命令后可以在你本地的/source 目录下看见以为你新增页面名为名的文件夹

显示页面

打开文件后可以对indexmd 进行编辑然后打开/themes/jacman目录下的_configyml文件(自己正在使用的主题),

添加刚刚新增的页面:

1

2

3

4

5

menu:

首页: /

统计: /archives

关于: /about

pageName: /pageName ##前面的pageName可以自定义,后面的pageName必须写刚刚新增的页面名称

新建文章

1

$ hexo new [layout] 'name'

[layout] 为可选,不写默认为post /source 目录下的文件夹名称即为 layout 名

安装主题

1

$ git clone https://githubcom/JamesPan/hexo-theme-icarusgit themes/icarus

更换主题

首先下载主题,然后打开根目录下的 _cinfigyml ,修改 theme: 要更换的主题名

修改主题颜色

打开 /themes/jacman目录下的_configyml文件,修改:

1

2

theme_color:

theme: '色值'

修改logo

打开主题下的 _configyml 文件,修改:

1

2

3

4

imglogo:

enable: false ## 是否显示logo

src: img/logogif ## logo地址

favicon: img/qqico ## 页面左上角图标

Hexo 版本升级

1

$ npm update hexo -g

一、使用包管理器安装Git

  Git已经被所有的主流Linux发行版所支持。所以安装它最简单的方法就是使用各个Linux发行版的包管理器。

1、Debian, Ubuntu, 或 Linux Mint

1

$ sudo apt-get install git

2、Fedora, CentOS 或 RHEL

1

$ sudo yum install git或$ sudo dnf install git

3、Arch Linux

1

$ sudo pacman -S git

4、OpenSUSE

1

$ sudo zypper install git

5、Gentoo

1

$ emerge --ask --verbose dev-vcs/git

二、从源码安装Git

  如果由于某些原因,希望从源码安装Git,按照如下介绍操作。

  

1、安装依赖包

  在构建Git之前,先安装它的依赖包。

1

2

3

4

//Debian, Ubuntu 或 Linux Mint

$ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev asciidoc xmlto docbook2x

//Fedora, CentOS 或 RHEL

$ sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc xmlto docbook2x

2、从github官网下载最新版本的Git。然后在/usr下构建和安装。

  注意,如果打算安装到其他目录下(例如:/opt),那就把“--prefix=/usr”这个配置命令使用其他路径替换掉。

1

2

3

4

5

$ cd git-xxx

$ make configure

$ 。/configure --prefix=/usr

$ make all doc info

$ sudo make install install-doc install-html install-info

Gitblit是完全开源的软件,它基于纯粹的Java堆栈,被设计以在

Git仓库速度和效率方面胜任从小型到极大型的项目。它很容易学习和上手,并有着闪电般的性能。它在很多方面远胜

Subversion、CVS、Perforce和ClearCase等SCM(版本控制)工具,比如,如快速本地分支、易于暂存、多工作流等。

Gitblit的功能

它可以做为一个哑仓库视图,没有管理控制以及用户账户。

它可以做为完整的Git服务,拥有克隆、推送和仓库访问控制。

它能独立于其他Git工具使用(包括实际的Git),它能和您已有的工具协作。

选择一个好的学习班是很重要的

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何搭建linux git服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情