1. 程式人生 > >git 伺服器搭建,在自己伺服器上搭建私有倉庫

git 伺服器搭建,在自己伺服器上搭建私有倉庫

建立一個簡單的私人Git版本控制伺服器,首先得有個伺服器(屁話)。這種方式適合人比較少的情況,管理不需要很複雜,只要增加幾個賬號就能搞定。

如下面的情況,有一個伺服器,兩個客戶端。

伺服器:Debian7.5 (192.168.10.14)
  戶:git (git-shell)
  庫:sample.git
  址:[email protected].168.10.14:/home/git/sample.git

客戶端:Mac    mymac.pubmac git公鑰)
       win7   mywin.pubwin7 git公鑰)

簡單步驟:

  • 1、安裝git服務,並建立git賬號
  • 2、建立示例倉庫sample
  • 3、匯入客戶端公鑰
  • 4、客戶端連線並提交內容
  • 5、修改Git許可權,只使用git-shell命令
    -- OK --

一、安裝git

直接通過apt-get安裝git。使用這個方式比較簡單,當然也可以使用git原始碼自己編譯最新版本。

# apt-get update
# apt-get install git -y

1.1 建立git使用者

建立git賬戶並登入,直接指定使用者目錄到/home/git

# useradd git -d /home/git -m -s /bin/bash
# su git

新增使用者 user add
-d:指定使用者目錄
-m:如果目錄不存在則建立
-s:可以指定使用者使用的命令

二、建立sample庫

建立庫很簡單,注意使用--bare引數。作為程式碼倉庫伺服器並不會在上面修改東西,所以只要有相關提交日子就可以。

$ cd ~
$ git init --bare sample.git

三、設定SSH Key

收集客戶端公鑰,複製到伺服器上。 客戶端當前賬號RSADSA的數字簽名檔案id_rsa.pub.ssh使用者目錄中。通常情況下windows在 %userprofile%\.ssh 目錄中,Mac在~/.ssh目錄中。

mac上可以直接使用下面命令複製貼上板上,或使用ssh上傳

$ pbcopy < ~/.ssh/id_rsa.pub

win7上可以開啟Git GUI介面有個幫助

->show SSH Key選單,如果沒建立過可以點選建立SSH的簽名檔案,並複製公鑰儲存到伺服器上。如果使用第三方的SSHKey服務,那可能實際位置會有些差異。

生成本地使用者的簽名檔案,並把客戶端上公鑰匯入到伺服器上。如果有多個的話可以放在一個目錄中,方便匯入。如果是團隊人比較多這種方式可能就不太適合了。

如把客戶端的key檔案mymac.pubmywin.pub匯入。

$ ssh-keygen -t rsa -b 4096
$ cat mymac.pub >> ~/.ssh/authorized_keys
$ cat mywin.pub >> ~/.ssh/authorized_keys

3.1 客戶端獲取sample庫,並增加檔案上傳到伺服器

在Mac客戶端獲取。

$ git clone [email protected].168.10.14:/home/git/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

獲取成功OK,增加一個檔案,並提交到伺服器上

$ cd sample
$ cat >> readme.md
first file.
^c
$ git add .
$ git commit -m "first commit"
$ git push

3.2 伺服器上檢視狀態

$ git log
commit 8b070256af351b43a74753f0b05969fcfe9c7310
Author: moguf <[email protected].com>
Date:   Sun Apr 3 20:49:17 2016 +0800

    first commit

3.3 在Win客戶端獲取

windows上可以直接使用gitTortoiseGit獲取。

[email protected].168.10.14:/home/git/sample.git

新建一個檔案並提交到伺服器上。在伺服器上通過git log就能看到第二提交的內容。mac客戶機上git pull能看到剛才新加的檔案。

這樣Git伺服器倉庫功能基本完成。

四、安全問題

為安全考慮Git賬號只允許使用git-shell。在passwd檔案中找到git使用者,把/bin/bash直接修改成/usr/bin/git-shell 登入root賬號,並修改git的使用者許可權。

$ su
# vim /etc/passwd

這樣git使用者只能git-shell命令不能登入了。

使用 su git 命令就會出現下面提示,git使用者就無法登入到shell,這樣就OK了。

# su git
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.

五、資料倉庫遷移

上面的情況是空倉庫,如果原來已經有在使用的倉庫,想遷移到新倉庫。

mac 下切換

先看一下remote的名字。

$ git remote
origin

一般可以看到origin,這個就是原來倉庫名稱。使用git remote set_url命令更換地址,如新地址是[email protected]:/home/git/sample.git

$ git pull
$ git remote set-url origin [email protected].168.10.14:/home/git/sample.git
$ git push
  • 獲取原來最新程式碼
  • 切換到新地址
  • 提交當前庫內容

win7下切換

如果有裝‘TortoiseGit’。直接右擊當前目錄,進入Settings把Remote中地址替換掉。沒裝就用上Git自帶的,使用上面命令替換。

提示:這種方式在空倉庫下遷移比較方便,如果新地址有資料那就比較麻煩了。

六、其它相關:從原始碼安裝Git

系統提供的包比較文件,當然可能會發現有些不得不安裝最新版本才能解決。反正會有各種原有會須要升級git。

6.1 安裝依賴包

$ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev asciidoc xmlto docbook2x

6.2 下載編譯

一般的編譯安裝方法,makemake install

$ wget https://github.com/git/git/archive/v2.9.1.tar.gz
$ tar fvxz v2.9.1.tar.gz
$ cd git-2.9.1
$ make prefix=/usr all doc info
$ su
# make prefix=/usr install install-doc install-html install-info

安裝完成後驗證一下git版本

# git --version
git version 2.9.1

上面的方法是全域性安裝的,如果須要更細節的控制安裝可以參考git提供的安裝幫助原始文件

6.3 磁碟爆了!

上面的依賴包尺寸有些大。虛擬機器本來就是用來測試的,分配的磁碟空間比較小。發生了磁碟空間不足問題,100%佔用-_-!!有些杯具,這是意外中的意外。可以使用df -hl命令檢視剩餘空間。

[email protected]:/home/abc# df -hl
Filesystem              Size  Used Avail Use% Mounted on
rootfs                  2.5G  2.5G     0 100% /
udev                    10M     0   10M   0% /dev
tmpfs                   76M  224K   76M   1% /run
/dev/disk/by-uuid/371b6c92-bdc9-417d-b37f-fae99e6ecce1  2.5G  2.5G     0 100% /
tmpfs                   5.0M     0  5.0M   0% /run/lock
tmpfs                   213M     0  213M   0% /run/shm
/dev/sda6               5.2G  139M  4.8G   3% /home
tmpfs                   213M     0  213M   0% /tmp

簡單清理 刪除快取檔案

清理舊版本的軟體快取

# apt-get autoclean

清理所有軟體快取:

# apt-get clean

七、相關問題

提示:
可能會出現 bash: vim: command not found 。安裝個vim 或使用vi命令都可以。
apt-get install vim -y

更多相關git的問題可以直接到官網查詢。有中文版本幫助,內容比較詳實。


來源:http://www.cnblogs.com/zhoug2020/p/5789041.html

相關推薦

高效實用在centos7搭建MFS分布式文件系統

使用 原理 source 網絡 組成 tar zxvf sha 變量 系統搭建 MFS原理: MFS是一個具有容錯性的網絡分布式文件系統,他把數據分散存放在多個物理服務器上,而呈現給用戶的則是一個統一的資源 MFS文件系統組成: 1、元數據服務器(master)

深入體驗bash on windows在windows搭建原生的linux開發環境酷!

今年微軟Build 2016大會最讓開發人員興奮的訊息之一,就是在Windows上可以原生執行Linux bash,對開發人員來說,這是一個喜聞樂見的訊息。 1 安裝 你必須安裝開發者預覽版本,才能使用windows的linux subsystem功能。 首先開啟你的Wi

手機端訪問自己電腦搭建的服務端

前提:手機,電腦的網路需要在同一個區域網下; 一: 關閉電腦防火牆或者設定80埠允許連線; 設定方法: 開啟控制面板---Windows防火牆---高階設定---入站規則---新建規則---埠---輸入80 二: 手機訪問電腦,不能再用localhost或者127.0

Weblogic HTTPS SSL證書製作(自己使用openssl來製作CA證書和伺服器證書自己充當CA的角色)

一、生成CA證書1、建立私鑰openssl genrsa -out /home/ca/ca-key.pem 10242、建立證書請求openssl req -new -out /home/ca/ca-req.csr -key /home/ca-key.pem3、自簽名證書1

Spring4搭建+REST在Spring搭建

注意,該文是基於Spring4而不是Spring boot,因而非零配置檔案。 1、Server端 整體架構 專案名對應容器(Tomcat)部署專案的名字,從而訪問根URI為:http://localhost:8080/<your-application-name&g

把本地檔案傳到遠端倉庫git和github前提是傳的不能是空資料夾

把本地檔案上傳到遠端倉庫:git和github 前提是上傳的不能是空資料夾,git是不能上傳空資料夾的,要是太想上傳空資料夾,就往裡面放一個readme.txt,老子搞了半天就是因為這個原因沒上傳成功我的檔案目錄,廖雪峰的部落格裡面也沒有提醒,真是太壞了 (

LNMP小專案搭建Centos7.6環境搭建Linux+nginx+mysql+phpwordpress個人部落格的搭建(完整搭建步驟)

一、LNMP搭建,基於nginx伺服器搭建wordpress個人部落格 準備環境:centos7.6環境下web伺服器(nginx+php):主機名:web01,ip:192.168.248.172mysql伺服器(mariadb):主機名:db01,ip:192.168.248.177 關閉selinu

docker私有倉庫搭建 使用Portus管理docker registry 私有倉庫

 到此,Portus的安裝已經完成。 但是配置還沒有完成,修改修改docker的配置檔案 5,修改docker配置檔案 vim /lib/systemd/system/docker.service 將 --insecure-registry 192.168.223.132:5000 加到ExecSt

docker 基於現有映象修改後儲存,私有倉庫

docker:/root# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS

git 伺服器搭建自己伺服器搭建私有倉庫

建立一個簡單的私人Git版本控制伺服器,首先得有個伺服器(屁話)。這種方式適合人比較少的情況,管理不需要很複雜,只要增加幾個賬號就能搞定。 如下面的情況,有一個伺服器,兩個客戶端。 伺服器:Debian7.5 (192.168.10.14) 用 戶:git (git-s

自己的電腦搭建伺服器釋出自己的網站(學習之用)

我們平常學習時經常會寫一下javaweb程式,我們為了更能逼近現實,就想著自己的javaweb程式釋出後,外網的同學能夠訪問我們的網站,難道我們去買空間,去買域名嘛,其實也沒必要,我們只是學習,測試之用,在自己的電腦上搭建一個伺服器完全可以滿足要求。上次寫的一篇部落格,PC服務端與Andro

在阿里雲搭建自己git伺服器

這篇文章我就來介紹一下如何在一臺全裸的阿里雲主機上搭建自己的git伺服器。 1. 安裝git 首先安裝git,一般而言,現在的伺服器已經內建了git安裝包,我們只需要執行簡單的安裝命令即可安裝。比如: $ yum install git # centos $ apt-get install git #

自己的電腦搭建伺服器釋出自己的網站

我們平常學習時經常會寫一下javaweb程式,我們為了更能逼近現實,就想著自己的javaweb程式釋出後,外網的同學能夠訪問我們的網站,難道我們去買空間,去買域名嘛,其實也沒必要,我們只是學習,測試之用,在自己的電腦上搭建一個伺服器完全可以滿足要求。上次寫的一篇部落格,PC服

自己的電腦搭建伺服器釋出自己的網站(學習之用)(轉)

我們平常學習時經常會寫一下javaweb程式,我們為了更能逼近現實,就想著自己的javaweb程式釋出後,外網的同學能夠訪問我們的網站,難道我們去買空間,去買域名嘛,其實也沒必要,我們只是學習,測試之用,在自己的電腦上搭建一個伺服器完全可以滿足要求。上次寫的一篇部落格,PC服務端與Android客戶端實現網

在Linux搭建私有Git伺服器並建立私有遠端倉庫

       遠端倉庫實際上和本地倉庫沒啥不同,純粹為了 7x24 小時開機並交換大家的修改。GitHub 是一個免費託管開原始碼的遠端倉庫; 但是對於某些資原始碼(如生命的商業公司來說),不想公開原始碼, 可以自己搭建一臺 Git 伺服器作為私有倉庫使用。

如何在伺服器搭建Git版本倉庫?------玉米都督

最近要做一個django的商城網站放在伺服器上,. 以前都是用xftp 直接上傳修改原始碼.但是發現這種方法太lowB 所以需要學習一下git 技術   網站原始碼沒有放在git倉庫下,伺服器上分了2個部分,一個是git自己的版本控制,另外一個則是git 的鉤子 勾到

Centos7 Gitea安裝教程 - 一款易搭建執行快的Git伺服器

說明:Gitea是從Gogs發展而來,同樣的擁有極易安裝,執行快速的特點,而且更新比Gogs頻繁很多,維護的人也多,個人認為Gitea還是更好一些的,這裡就說下安裝方法。 截圖 簡介 Gitea是一個極易安裝,執行非常快速,安裝和使用體驗良好的自建Git服務。採用Go

cenos7 搭建git伺服器

安裝git 在官網下載 tar.gz的包 然後放到 Linux(centos7系統)伺服器中 執行 tar -zxvf 檔名 來進行解壓檔案 然後 執行 git -version 來檢視git版本 正常出現版本號 繼續進行下一步 執行 useradd git 命令來建立 git使用者 然後 執行

centos7搭建git伺服器

目錄 環境: 安裝git和建立使用者 建立證書登入 初始化git倉庫 踩得坑 tortisegit使用 環境: centos7,git 1.8.3,tortisegit 安裝git和建立使用者 注:$代表用root使用者登入 # 安裝Git $ y

如何在windows搭建私有git伺服器

 注:本文使用gitblit 1、下載並安裝jdk. 點選Accept,根據PC配置下載32位或64位的jdk 2、配置Java環境變數 右鍵” 計算機” => ”屬性” => ”高階系統設定” => ”高階” => “環境變數” =&