GIT自動更新操做說明

 

1、安裝GIT

1、下載GIT源碼並安裝php

$ git --version  #先查看GIT是否已經安裝,已經安裝則不須要從新安裝linux

$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-develgit

$ wget http://git-core.googlecode.com/files/git-1.9.0.tar.gz   或者  wget https://www.kernel.org/pub/software/scm/git/git-1.9.0.tar.gz targithub

$ tar zxvf git-1.9.0.tar.gzweb

$ cd git-1.9.0vim

$ make prefix=/usr/local/git allapp

$ make prefix=/usr/local/git install #root用戶運行dom

 若是編譯時提示錯誤:
LINK git-credential-store
libgit.a(utf8.o): In function `reencode_string_iconv’:
/opt/git-master/utf8.c:530: undefined reference to `libiconv’
libgit.a(utf8.o): In function `reencode_string_len’:
/opt/git-master/utf8.c:569: undefined reference to `libiconv_open’
/opt/git-master/utf8.c:588: undefined reference to `libiconv_close’
/opt/git-master/utf8.c:582: undefined reference to `libiconv_open’
collect2: ld 返回 1
make: *** [git-credential-store] 錯誤 1ssh

$ cd /usr/local/src/curl

$ 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

從新安裝GIT

$ cd /usr/local/src/git-1.9.0

$ ./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv

$ make

$ make install

2安裝完成,查看GIT的版本

$ /usr/local/git/bin/git --versiongit version 1.9.0

GIT命令添加到全局變量中

$ vi /etc/profile在最後添加 export PATH=$PATH:/usr/local/git/bin

$ source /etc/profile  #修改使其生效


查看GIT版本

$ git --versiongit version 1.9.0

OKGIT軟件安裝成功。 

 

 

2、安裝Gitolite

一、添加git用戶

$ useradd git

$ passwd git

二、切換用戶並生成密鑰

 $ su git

$ ssh-keygen -t rsa

一路按回車便可 

三、下載並安裝Gitolite

$ git clone http://github.com/sitaramc/gitolite.git 

$ cd gitolite

$ pwd  

/home/git/gitolite

$ ./install

use the following full path for gitolite:
    /home/gitadmin/gitolite/src/gitolite

$ /home/gitadmin/gitolite/src/gitolite

$ /home/gitadmin/gitolite/src/gitolite setup

出錯:

Initialized empty Git repository in /home/gitadmin/repositories/gitolite-admin.git/
Initialized empty Git repository in /home/gitadmin/repositories/testing.git/
WARNING: /home/gitadmin/.ssh/authorized_keys missing; creating a new one

解決

$ cd src

$ ./gitolite setup -pk /home/git/.ssh/id_rsa.pub

Initialized empty Git repository in /home/gitadmin/repositories/gitolite-admin.git/
Initialized empty Git repository in /home/gitadmin/repositories/testing.git/
WARNING: /home/gitadmin/.ssh/authorized_keys missing; creating a new one

表示安裝成功,而且初始化了基本git庫

 

四、增長用戶與版本庫

$ git config –global user.name 「yourname」

$ git config –global user.email 「youremail@localdomain.com」

$ cd ~

$ git clone git@127.0.0.1:gitolite-admin

$ cd gitolite-admin

進入 gitolite-admin 目錄,其中的 keydir 目錄是用來放置用戶公鑰的,而 conf/gitolite.conf 則是用來配置用戶和版本庫

編輯 $vi conf/gitolite.conf配置成以下:

@web_rw           = lisi
@web_r            = zhangsan

repo gitolite-admin    

RW+      =   id_rsa

#repo testing

#RW+     =   @all

repo webapp   

RW+      = @web_rw    

RW       = @web_rw    

R        = @web_r

其中全部用戶名的公鑰文件應該放在keydir文件夾下面

 

五、使修改的配置文件生效

$ git add .

$ git commit -am 「add web repo」

$ git push 

OK,配置文件生效,也會生成了線上webapp空的GIT庫

GIT地址爲:git@10.11.121.9:webapp.git

 

3、設置GIT鉤子自動更新代碼

$ cd /home/www/php/web.com  #當前是在git用戶下操做

$ git clone git@10.11.121.9:webapp.git  #拉取GIT庫代碼

$ cd ~

$ cd /home/git/repositories/webapp.git/hooks

$ cp post-update.sample post-update #添加GITa添加鉤子文件

$ vim post-update  #編輯以下,保存退出

#!/bin/sh

#

# An example hook script to prepare a packed repository for use over

# dumb transports.

#

# To enable this hook, rename this file to "post-update".

unset $(git rev-parse --local-env-vars)

cd /home/www/php/web.com/webapp

sudo /usr/local/bin/git pull

sudo chown -R www:www .

註釋:post-update這個腳本在提交文件到git倉庫時,會運行文件內的代碼,因此經過這樣的方法,咱們在客戶端push提交代碼後,就能自動更新網站的文件了。

 

$ su root

$ vi /etc/sudoers

一、註釋掉:

#Defaults    requiretty

解決錯誤:sudo:抱歉,您必須擁有一個終端來執行 sudo

二、配置git擁有超級權限執行chown命令,同時設置sudo不用輸入密碼的方法

root    ALL=(ALL)       ALL

git     ALL=(ALL) NOPASSWD: NOPASSWD: ALL   #添加左配置

 

4、使用TortoiseGit推送線上代碼操做說明

一、在本地開發環境新增一個與線上代碼同步的GIT庫:web_online,對應地址爲git@192.168.0.111:web_online.git,並設置好權限,只能管理員讀寫。

二、web_online克隆與主庫web相同的代碼。

三、修改web_online配置文件與線上的一致,並提交。

四、而後把web_online代碼推送到線上的代碼庫,即git@10.11.121.9:webapp.git

五、根據代碼對應位置設置好虛擬主機或者經過軟連接來設置。

 

 

5、關於公鑰私鑰配置的操做說明

1、在linux下,用戶默認公鑰和私鑰的位置

/用戶目錄/.ssh/id_rsa       #用戶的私鑰

/用戶目錄/.ssh/id_rsa.pub   #用戶的公鑰

二、生成其餘用戶公鑰密鑰

$ ssh-keygen -t rsa   #下一步輸入公鑰密鑰的名稱,例如zhangsan,往下所有按Enter

三、設置會話管理配置

$ vi  /用戶目錄/.ssh/config 配置成以下:

Host 192.168.0.111   ##別名,能夠隨意命名,連接時使用這個名字

  HostName 192.168.0.111    ##主機名

  User zhangsan             ##用戶名

  Port 22                   ##端口

  IdentityFile ~/.ssh/zhangsan  ##密鑰文件的路徑

四、把公鑰文件放置到gitolite服務端的keydir文件下,而後使修改添加的配置文件生效便可 (查看上面安裝Gitolite5點說明

相關文章
相關標籤/搜索