# 第一步,安装git
1. 查看git版本:https://github.com/git/git/releases?_blank
2. 查看git安装说明:https://github.com/git/git/blob/master/INSTALL?_blank
`yum info git`可以看到服务器上自带的是1.8.3.1版本,我也升级下最新的是2.16.2(2018-03-05)
## 开始安装git
进入/home/soft目录,直接下载安装git,先不用安装一大推的扩展,等安装过程中报错了,看需要哪个扩展再装哪个~
```bash
cd /home/soft/
wget https://github.com/git/git/archive/v2.16.2.tar.gz
tar -zxvf v2.16.2.tar.gz
cd git-2.16.2
mkdir /usr/local/git
make prefix=/usr/local/git #报错了,libiconv错误
```
下载安装libiconv
```bash
cd /home/soft
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar -zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv && make && make install
```
编译libiconv发生./stdio.h:1010:1: 错误:'gets'未声明(不在函数内)
解决如下:
```bash
cd srclib/ #进到出错文件的目录
sed -i -e '/gets is a security/d' ./stdio.in.h #编辑出错文件
cd ../ #回到编译对象目录
make #重新Make安装
```
至此libiconv安装结束
## 继续编译安装git
```bash
cd /home/soft/git-2.16.2
make clean #清理之前的编译文件
make prefix=/usr/local/git #重新执行安装,但是依旧报错,libiconv错误
```
## 换一种方式,使用configure,增加libiconv
```bash
make clean
make configure
./configure --prefix=/usr/local --with-iconv=/usr/local/libiconv/
make install
```
安装成功!
## 创建软连接
`ln -s /usr/local/git/bin/git /usr/bin/git`
## 查看版本
`git --version`
# 第二步,创建git用户,导入公钥。
## 创建用户与组
```bash
groupadd git
useradd git
cd /home/git/
mkdir .ssh #新建文件夹
chmod 700 .ssh
touch .ssh/authorized_keys #新建文件
chmod 600 .ssh/authorized_keys
```
## 本地创建公钥
```bash
ssh-keygen -t rsa -C "893371810@qq.com"
cd /home/lypeng/.ssh/
```
## 拷贝到服务器
`scp id_rsa.pub lypeng@your_ip:/home/lypeng/id_rsa.pub`
## 登录服务器,将公钥导入到auth验证文件
```bash
vim /home/git/.ssh/authorized_keys
:r /home/lypeng/id_rsa.pub
:wq
```
## 开启ssh中的RSA认证
vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
## 创建仓库
cd /home/git
git init --bare test.git
## 本地克隆仓库,提交测试
mkdir /home/gitrepo
cd /home/gitrepo
git clone git@your-ip:test.git
echo 123456 > a.txt
git add a.txt
git commit -m 'first'
git remote add mytestrepo git@your_ip:test.git
git push -u mytestrepo master
发生错误如下:
git@your_ip's password:
对象计数中: 3, 完成.
写入对象中: 100% (3/3), 200 bytes | 0 bytes/s, 完成.
Total 3 (delta 0), reused 0 (delta 0)
error: unpack failed: unable to create temporary object directory
To git@your_ip:test.git
! [remote rejected] master -> master (unpacker error)
error: 无法推送一些引用到 'git@your_ip:test.git'
`unable to create temporary object directory`,无法创建临时目录,看样子应该是权限问题,怀疑是.git文件夹写权限问题。
给个test.git整体777试试
```bash
chmod 777 test.git -R
git push mytestrepo
```
ok,提交成功!
至此,clone push等测试结束!
关于网站同步与多用户多仓库的用户权限问题,之后测试完再总结~
参考:
1. http://blog.csdn.net/permanent_2008/article/details/73839315?_blank
2. http://www.dataguru.cn/thread-562562-1-1.html?_blank
如果你只有一个人去操作,到这儿就结束了,剩下的就是目录规划以及多用户多项目权限分配问题。目前是有一个git分组,下面有一个git用户,可以在新增两个用户,同属于git组
创建用户,修改用户所属组~
导入用户公钥
创建仓库
某个仓库只允许指定的用户push?
git分组
|--git
|--lypeng29
|--tom3472
仓库:
/home/git/
|--test.git
|--ycms.git
|--shop.git
好了,安装结束,目前想到就这么多,之后遇到问题,再来总结~
- 前言
- Interview
- 01-cookie与session
- 04-mysql索引
- 05-memcache与redis
- 06-高并发
- 07-主从同步
- 08-myisam与inondb
- 09-框架区别
- 10-php7新特性
- 11-设计模式
- 12-MySQL优化
- 13-php自动加载机制
- 14-MongoDB命令
- 15-Python爬虫之scrapy框架
- 16-php运行原理
- 17-单点登录
- Linux
- linux常见命令
- awk
- sed
- bash-shell
- vim学习教程
- PHP
- php运行机制
- php执行效率
- word2pdf
- php预览Word
- wechat_wafter2
- Python
- python
- win-bat
- svn操作命令
- git常用操作命令
- git_install
- gitlab安装
- nextcloud
- docker