如何搭建linux git服务器
首先我们分别在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),它能和您已有的工具协作。
选择一个好的学习班是很重要的
0条评论