1. 程式人生 > >contos7編譯安裝git及搭建git遠端版本庫,及鉤子自動更新

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

一  安裝最新版git

1.檢視yum源倉庫git資訊:

 yum info git初始化的阿里雲contos7的yum是1.8.3.1版本的;和官網不匹配;2.依賴庫安裝yum install curl-devel expat-devel gettext-devel openssl-devel zlib-deveyum install gcc perl-ExtUtils-MakeMaker

3.解除安裝低版本git(未安裝可跳過)

通過命令:git –-version 檢視系統帶的版本,Git 版本是: 1.8.3.1,所以先要解除安裝低版本的 Git,命令:
 yum remove git;

3.下載最新版git原始碼包

cd  /usr/local/git       #進入檔案位置,自定義,個人安裝包存放位置,

wget https://github.com/git/git/archive/v2.9.2.tar.gz #下載最新原始碼包tar -xzvf v2.9.2.tar.gz                    #解壓目錄
cd git-2.9.2# make prefix=/usr/local/git all# make prefix=/usr/local/git install        #進行編譯安裝vi /etc/profile      #新增環境變數 export PATH="/usr/local/git/bin:$PATH"      #新增到文字中;

source /etc/profile   #是配置立即生效
git --version        #檢視版本號

將git設定為預設路徑,不然後面克隆時會報錯

ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack 
ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack 
二    建立git使用者及使用者組
$ groupadd git
$ useradd git -g git
$ passwd git  #引數是使用者名稱
最好切換到git使用者 不然後面新建的git倉庫都要改許可權!之後克隆需要密碼很可能是許可權錯誤;

Git伺服器開啟RSA認證 。在Git伺服器上首先需要將/etc/ssh/sshd_config中將RSA認證開啟,

1.RSAAuthentication yes

2.PubkeyAuthentication yes

3.AuthorizedKeysFile .ssh/authorized_keys

這裡我們可以看到公鑰存放在.ssh/authorized_keys檔案中。

將本地git公鑰加入遠端庫authorized_keys中就不需要密碼克隆了

收集所有需要登入的使用者的公鑰,就是他們自己的id_rsa.pub檔案,把所有公鑰匯入到/home/git/.ssh/authorized_keys檔案裡,一行一個。

$ cd /home/git/
$ mkdir .ssh #新建資料夾
$ chmod 700 .ssh 
$ touch .ssh/authorized_keys  #新建檔案
$ chmod 600 .ssh/authorized_keys
許可權為git所有;三    初始化倉庫
$ cd /home/git
$ git init --bare ceshi.git
四   克隆到本地git clone [email protected]:/home/git/ceshi.git          #以git使用者克隆如果公鑰已放入遠端庫,還需要密碼,很可能是許可權問題五  新增鉤子(自動更新)vi post-receive     #編輯鉤子檔案,在ceshi.git/hooks/post-receive
寫入#!/bin/sh
DIR_ONE=/home/www/
git --work-tree=${DIR_ONE} clean -fd
git --work-tree=${DIR_ONE} checkout --force  #把內容複製到post-receive
chown -R git:git post-receivechmod +x post-receive在本地提交後檢視路徑/home/www/下是否更新git更新時強制改變檔案許可權

在 .git/hooks/ 目錄下 
新建一個名為 post-checkout 的檔案

將下列內容儲存

#!/bin/sh
pwd
echo "This is post-checkout hook"
chmod -R 755 ./* && chown -R www:www ./*
  • 1
  • 2
  • 3
  • 4

使post-checkout可以被呼叫 
chmod +x post-checkout


相關推薦

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

Git快速入門-git stash 暫存變更git reset 撤銷commitgit revert 回退遠端版本

注:本文基於git version 2.13.5 版本進行演示 1. 概述 Git入門系列第四篇,基於場景,介紹一些非常實用的Git命令,也許這些命令會讓你產生“還有這種操作”的感嘆。例如如何把修改暫存起來,留著以後使用?想撤銷已提交(com

git知識總結2——建立版本新增/提交檔案

1.建立版本庫 版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄裡面的所有檔案都可以被Git管理起來,每個檔案的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。 首先,選擇一個合適的地方,建立一個空目錄 cd 命令用於切

搭建Git CentOS搭建Git伺服器許可權管理

CentOS搭建Git伺服器及許可權管理   宣告:本教程,僅作為配置的記錄,細節不展開,需要您有一點linux的命令基礎,僅作為配置參考。 1. 系統環境 系統: Linux:CentOS 7.2 64位 由於CentOS已經內建了OpenSSH,如果您的

離線情況下在Centos6.4 64bit作業系統上安裝git搭建git伺服器

最近閒來無事,想搭建git伺服器玩玩,現就詳細介紹一下搭建過程   所需條件: 1:centos6.4 64bit系統 2:git的tar.gz壓縮包 可以去官網上去下載   配置本地yum源: 在centos6.4安裝完成後,且無法連線網路的情況

Git學習筆記1:版本管理歷史Git安裝

1.集中式VCS / SVN 有集中的版本管理伺服器,具備檔案管理和分支管理,提高整合效率,但是客戶端必須時刻與伺服器端相互連線。 2.分散式的VCS 客戶端和服務端都有完整的版本庫,即使脫離了服務端,客戶端依然可以進行版本管理,在檢視歷史和版本等操作時都不需要訪問伺服器,相比較集中式,

Git使用(二)版本創建文件修改

highlight -m git rm courier for mode software 1-1 mkdir 一、創建版本庫 1、安裝完成後,在開始菜單裏找到“Git”->“Git Bash”,蹦出一個類似命令行窗口的東西,就說明Git安裝成功! 安裝完成後,還需

CentOS6編譯安裝 LAMP+Wordpress--搭建自己的博客

lamp、wordpressCentOS6安裝LAMP+Wordpress--搭建自己的博客 背景: LAMP也就是Linux+Apache+Mysql(Mariadb)+PHP(Python...),這是個基本的網站架構,在學會了編譯安裝LAMP環境後,在加上Wordpress就可以搭建屬於自己

[環境配置]Ubuntu 16.04 原始碼編譯安裝OpenCV-3.2.0+OpenCV_contrib-3.2.0產生的問題

1.OpenCV-3.2.0+OpenCV_contrib-3.2.0編譯安裝過程 1)下載官方要求的依賴包 GCC 4.4.x or later CMake 2.6 or higher Git GTK+2.x or higher, including headers (libgtk2.

解決已安裝python2.7 來安裝python3.5的共存和安裝問題Anoconda安裝搭建:cpu的TensorFlowKeras

首先背景win10的64位,我已經安裝python2.7.10在C盤,而且我這個是裝cpu版本的tensorflow 介紹一下pycharm可以支援2.7和3.5 Anoconda僅支援3.5 python3.5自帶pip不用下載,不用python2.7這麼麻煩 /我這個方法和別人不一樣,不

Git學習筆記11——配置Git搭建Git伺服器

忽略特殊檔案 有些時候,你必須把某些檔案放到Git工作目錄中,但又不能提交它們,比如儲存了資料庫密碼的配置檔案啦,等等,每次git status都會顯示Untracked files ...,有強迫症的童鞋心裡肯定不爽。 好在Git考慮到了大家的感受,這個問題解

git搭建git伺服器 在 Linux 下搭建 Git 伺服器

在 Linux 下搭建 Git 伺服器 目錄 ① 安裝 Git ② 伺服器端建立 git 使用者,用來管理 Git 服務,併為 git 使用者設定密碼 ③ 伺服器端建立 Git 倉庫 ④ 客戶端 clone 遠端倉庫 ⑤ 客

開發人員學Linux(5):CentOS7編譯安裝Nginx並搭建Tomcat負載均衡環境

1.前言在上一篇講述了JMeter的使用,在本篇就可以應用得上了。本篇將講述如何編譯安裝Nginx並利用前面的介紹搭建一個負載均衡測試環境。2.軟體準備Nginx-1.12.0,下載地址:https://nginx.org/download/nginx-1.12.0.tar.

ContOS7編譯安裝python3配置虛擬環境

Python36編譯安裝 一,下載python原始碼包 網址:https://www.python.org/downloads/release/python-367/ # 軟體包下載到/opt目錄 cd /opt # 下載原始碼包到/opt wget https://www.py

Git搭建Git伺服器——本地協議伺服器

環境 CentOS 7 x64 安裝 在終端下執行下面命令來檢查系統是否安裝git $ git --version 如果返回 “git: 未找到命令” 則需要安裝git。 執行下面命令安裝git和nfs $ sudo yum install -y

使用ssh方式git clone遠端版本遇到的坑(一)

在git clone ssh://….的時候報錯: nable to negotiate with : no matching key exchange method found. Their of

git使用(二)----創建版本

說明 tomat you del 只需要 user git add touch class 創建版本庫(操作都是在linux環境下) 什麽是版本庫呢?版本庫又名倉庫,英文名repository,其實就是一個目錄,可以進行增刪查改 創建一個目錄,這裏在根目錄下創建一個git_

創建一個版本把文件夾用Git管理起來

文件內容 ini 版本控制系統 所有 但是 成功 node 所在 分享 創建一個文件夾,把這個文件夾用Git管理起來,那麽這個文件夾的改變都可以被Git跟蹤到,當然也可以將Git中的文件還原到某一個時刻。 首先創建一個空的目錄,然後將空的目錄由Git來管理 1.建立一個文件

git忽略已加入到版本的文件

比較 gitignore del git 返回 總結 狀態 www push 項目中,我們會用到 ‘.gitignore‘ 來忽略一些文件,不記錄這些文件的版本控制。 然而,經常發現,已經添加到了 ‘.gitignore‘ 的文件/目錄,每次的修改等扔會記錄版本

Git的工作區和版本

  git是開源跨平臺的分散式版本控制管理工具,由於分散式不存在客戶端和服務端,每臺機器都是等價的,都有工作區和版本庫,開發人員無需聯網就可直接在本地進行工作,工作成果可直接儲存到本地版本庫,任何兩臺機器都可通過相互交換各自的版本庫來更新資訊。為確保時刻都能進行