1. 程式人生 > >CentOS 7 安裝git及程式碼自動更新

CentOS 7 安裝git及程式碼自動更新

1.安裝git

yum -y install git


解除安裝
yum -y remove git

2.檢視安裝的版本

git --version 

3.建立git使用者

useradd git
passwd git
#根據提示建立git使用者密碼 線上建議複雜一點


設定郵箱和名稱
git config --global user.email "[email protected]"
git config --global user.name "Your Name"

# win和linux換行轉換
git config --global core.autocrlf false
# 避免中文亂碼
git config --global core.quotepath off
git config --global gui.encoding utf-8



刪除使用者
userdel -r 使用者名稱

4.建立git倉庫

mkdir -p /home/git
git init --bare /home/git/one.git
cd /home/git/
##   給git使用者給予倉庫許可權
chown -R git:git one.git

5.禁用git使用者shell登入

vim /etc/passwd
#######將git使用者修改為如下(一般在最後一行)
git:x:1000:1000::/home/git:/usr/bin/git-shell

6.本地克隆專案

在想要克隆專案的目錄下右鍵開啟 Git Bash Here

####          IP地址或者域名    git倉庫路徑
git clone 
[email protected]
:/home/git/one.git#### 注意 #### 由於沒有新增密匙 所以每次pull push 都需要輸入上面建立git使用者所輸入的密碼
#### 注意 #### 由於沒有新增密匙 所以每次pull push 都需要輸入上面建立git使用者所輸入的密碼

7.專案程式碼自動更新

### 開啟 hooks 目錄
cd /home/git/marry.git/hooks
### cp一份 post-receive
cp post-receive.sample post-receive
### 編輯
vim post-receive
###  寫入如下內容
#!/bin/sh
unset GIT_DIR  
DeployPath="/home/www/one"
LogPath="/home/git/one.git/hooks"  
   
echo -e "\n=================  `date +"%Y-%m-%d %H:%M:%S"`  ===============\n" >> $LogPath/gitsync.log 2>&1 
cd $DeployPath  
   
#git stash  
#這裡直接丟棄工作區的內容,防止出現一些奇怪的錯誤。web目錄只做pull,不在這裡修改東西
git reset --hard
#先拉取再合併
git pull origin master  >> $LogPath/gitsync.log 2>&1 

#強制與遠端伺服器同步,不與本地合併,只能通過提交的客戶端提交的方式修改程式碼。
#git fetch --all  
#git reset --hard origin/master  
   
#time=`date`  
#echo "web server pull at webserver at time: $time."  
echo "================================================"  >> $LogPath/gitsync.log 2>&1 

8.給予post-receive git使用者許可權及可執行許可權

chown git:git post-receive
chmod +x post-receive

9.最後在線上站點目錄clone一下

cd /home/www
##         git倉庫地址
git clone /home/git/one.git
###  開啟站點目錄
cd /home/www
### 給予專案one目錄git使用者許可權
chown git:git -R one

10.免密拉取及提交

開啟Git Bash
生成密匙,一路回車就可以了
ssh-keygen -t rsa -C "[email protected]"


Git伺服器開啟RSA認證
vim /etc/ssh/sshd_config

新增如下
RSAAuthentication yes

將下面有註釋的取消註釋
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys


在/home/git/目錄下
cd /home/git
建立.ssh資料夾  如已經存在就不需要建立

給予許可權
chmod 700 /home/git/.ssh


沒有這個檔案就建立一個
chmod 600 /home/git/.ssh/authorized_keys

最後建立的檔案請設定使用者組為git
然後把本地的id_rsa.pub裡面的公鑰複製到/home/git/.ssh/authorized_keys裡面 一行一個即可


git命令現在不需要密碼了,但是git烏龜還是需要密碼
git烏龜用puttygen轉成ppk格式的公鑰 然後提交的時候選擇ppk公鑰地址就可以了

11.實現線上生產和測試程式碼都可訪問

####  linux伺服器  ####
####  建立倉庫
git init --bare /home/git/one.git
####  許可權
chown -R git:git /home/git/one.git
####  建立站點目錄
mkdir -p /home/www
####  開啟
cd /home/www
####  克隆專案
git clone /home/git/one.git
####  許可權
chown git:git -R one
####  克隆專案 命名測試
git clone /home/git/one.git test
####  許可權
chown git:git -R test

####  本地  ####
git clone [email protected]:/home/git/one.git
####  放入專案程式碼然後提交
####  建立本地分支
git branch test
####  建立遠端分支
git push origin test:test

####  伺服器  ####
cd /home/www/one
git pull
git checkout master
chown git:git -R one

cd /home/www/test
git pull
git checkout test
chown git:git -R test

####  鉤子檔案
cd /home/git/one.git/hooks
vim post-receive

鉤子檔案內容

#!/bin/sh
unset GIT_DIR

#生產目錄
Path="/home/www/one"
#測試目錄
TestPath="/home/www/test"
#測試分支名
TestName="test"
#日誌目錄
LogPath="/home/git/one.git/hooks"  
   
echo -e "\n=================  `date +"%Y-%m-%d %H:%M:%S"`  ===============\n" >> $LogPath/gitsync.log 2>&1 

#獲取分支名
read oldrev newrev ref
Branch=${ref#refs/heads/}

if [ $Branch = $TestName ]; then
  #開啟測試目錄並更新程式碼
  cd $TestPath
  #切換分支
  git checkout $Branch >> $LogPath/gitsync.log 2>&1
  #這裡直接丟棄工作區的內容,防止出現一些奇怪的錯誤。web目錄只做pull,不在這裡修改東西
  git reset --hard
  #拉取程式碼
  git pull >> $LogPath/gitsync.log 2>&1
elif [ "$Branch" = "master" ]; then
  #開啟測試目錄
  cd $Path
  #切換分支
  git checkout master >> $LogPath/gitsync.log 2>&1
  #這裡直接丟棄工作區的內容,防止出現一些奇怪的錯誤。web目錄只做pull,不在這裡修改東西
  git reset --hard
  #拉取程式碼
  git pull >> $LogPath/gitsync.log 2>&1
fi

#強制與遠端伺服器同步,不與本地合併,只能通過提交的客戶端提交的方式修改程式碼。
#git fetch --all  
#git reset --hard origin/master  

#time=`date`  
#echo "web server pull at webserver at time: $time."  
echo "================================================"  >> $LogPath/gitsync.log 2>&1

給予鉤子檔案許可權

chown git:git post-receive
chmod +x post-receive

相關推薦

CentOS 7 安裝git程式碼自動更新

1.安裝git yum -y install git 解除安裝 yum -y remove git 2.檢視安裝的版本 git --version 3.建立git使用者

Centos 7 安裝Supervisor使用

csdn html inux tar 設置 簡單的 install blog lib Supervisor官網鏈接:http://supervisord.org/installing.html 安裝與設置開機啟動: http://blog.csdn.net/fenglail

CentOS 7 安裝 Git

客戶端 psr 當前 oca fbv info bin MQ use 服務器端 1.先從yum安裝git yum –y install git 2.在需要的位置創建一個裸倉庫(最後以.git結尾) cd /usr/local mkdir git cd git git

centos 7 安裝git 免密登錄

用戶 內容 mkdir lse authorize 安全 免密碼登錄 toolbar onf 第一步.安裝git服務 yum install git 第二步.創建git用戶 adduser git 第三步生成git登錄公鑰 安裝完成 git客戶端

CentOS 7 安裝Nginx 並配置自動啟動

1、官網下載安裝包     http://nginx.org/en/download.html,選擇適合Linux的版本,這裡選擇最新的版本,下載到本地後上傳到伺服器或者centos下直接wget命令下載。     切換到/usr/local目錄,下載軟體包

【freeSwitch】——centos 7 安裝教程常見問題

引言   最近公司需要在系統中整合軟電話的功能,之前我們是直接購買的螞蟻電話,在使用了一段時間以後,會有一些問題,比如說穩定性,還有就是一些和我們自己業務相關的需要定製的功能都不能滿足,所以我們需要自己搭建軟電話平臺,在前期調研以後我們選定freeswitch來完成,關於fr

如何在CentOS 6.x/7.x上安裝git最新版

原始碼包安裝 步驟1. 安裝依賴包 # yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel # yum install  gcc perl-ExtUtils-MakeMaker

contos7編譯安裝git搭建git遠端版本庫,鉤子自動更新

一  安裝最新版git1.檢視yum源倉庫git資訊: yum info git初始化的阿里雲contos7的yum是1.8.3.1版本的;和官網不匹配;2.依賴庫安裝yum install curl-devel expat-devel gettext-devel opens

CentOS 7 安裝MySQL 5.6遇到問題解決方案

linux localhost not ces name 解決 info target case centos下安裝mysql真的沒有想象中那麽容易,在這裏我總結一下遇到的問題 1. ERROR 2002 (HY000): Can’t connect to loca

CentOS 7安裝Samba 4.6 版本步驟錯誤解決方法

style chmod tab root 必須 共享文件夾 默認 mini div 首先通過這次教訓,讓我養成一個好習慣:備份 備份 備份 不管做什麽配置或者更改什麽東西之前先做好備份! 還有我本身的一個壞毛病:眼高手低! 工廠有一臺服務器,由以前的運維裝的S

centos 7 安裝配置zabbix agent

repr rac nbsp sta 找到 更改 spa gen 監控 一、在被監控主機上設置防火墻,允許zabbix-agent的10050端口通過 二、執行yum list |grep zabbix,找到zabbix的agent安裝包並安裝 三、在 /etc/zabbix

centos 7 安裝配置 iptables (yum install iptables-services)

一、防火牆配置 不知道為什麼,雲主機沒有開啟firewall 或iptables,記錄一下配置iptables防火牆的步驟 1、檢測並關閉firewall 1 2 3 4 5 systemctl status firewalld.service #檢測是否開啟了firewall

centos 7 升級 git 版本(通過安裝 ius 源的方式)

文章目錄 檢視系統相關資訊 檢視CentOS的版本號 檢視核心版本 檢視 git 版本 通過安裝第三方 yum 源的方式來更新git 下載對應的 yum 源 安裝 yum 源 刪除掉已經存

centos-7安裝rabbitmq-21詳細步驟

1、先在www.erlang.org/downloads下載erlang的碼源,然後下載rabbitmq 2、初始化環境       <1> 配置 阿里雲yum源 詳細步驟 https://blog.csdn.net/ltx06/article/details/7

電腦基礎知識拓展:使用Git程式碼更新到本地(完整版)

環境:Git已安裝(皮一下) 新建一資料夾 右鍵,Git Bash Here git init   新增庫 git remote add origin 想要更新的原始碼地址   將庫裡的程式碼下載到本地 git pull origin ma

CentOS 7 安裝配置git

安裝yum install git 驗證[[email protected] ~]# git --version git version 1.8.3.1 [[email

Linux搭建SVN伺服器服務端程式碼自動更新

系統版本:CentOS6.8 流水線安裝如下: >>yum -y install subversion#安裝svn >>rpm -ql subversion#檢視安裝位置 >>svnversion --version#檢視版本 >&

CentOS 7 安裝、配置、使用 PostgreSQL 10 安裝基礎配置

install the server packages: yum install postgresql10-server  此時在/usr/下多了pgsql-10目錄 關於安裝的幾個軟體的介紹:  postgresql-client libraries and

CentOS 7 安裝Python3.5 Django

1.首先用yum安裝下vim,因為CentOS 7可能根本沒自帶完整vim,經常出現輸入亂碼:yum -y install vim2.安裝開發工具組:yum groupinstall "Developm

Centos 7安裝Grafana 4結合Zabbix3.2實現視覺化監控圖形

  Grafana 是 Graphite 和 InfluxDB 儀表盤和圖形編輯器。Grafana 是開源的,功能齊全的度量儀表盤和圖形編輯器,支援 Graphite,InfluxDB 和 OpenTSDB。   Grafana 主要特性:靈活豐富的圖形化選項;可以混合多種