# 第一步,安裝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