Linux環境下搭建git伺服器

2021-10-14 15:45:56 字數 2447 閱讀 3751

最近乙個專案需要重構,由於還沒立項,不能申請版本庫,一開始開發的時候需要用**比較工具手動進行**合併。這樣做效率實在太低,不僅容易漏掉**,還可能引入bug。看到組裡面有很多測試用的伺服器,因此提出乙個方案,自己搭建git伺服器。

強烈推薦用ubuntu或debian,我自己阿里雲伺服器的ubuntu系統很順利就配置好了,公司的centos折騰了半天。

首先需要在伺服器上安裝git。如果是ubuntu系統執行下面的命令:

$ apt-get

install

git

如果是centos系統執行下面的命令:

$ yum -y install

git

如果當前不是root使用者,需要在命令前加sudo

實際測試發現,adduseruseradd兩個命令都可以用。如果是ubuntu系統,執行adduser之後基本就是一套傻瓜式配置流程,按照提示設定密碼和其他資訊即可:

$ adduser git

# 建立乙個git使用者

如果是centos,執行adduser則不會有提示,還需要手動設定密碼:

$ passwd

git# 給git使用者設定密碼

注意:輸入passwd git後按回車,就會提示讓你輸入密碼,如果密碼設定比較簡單,可能會出現警告資訊,不要管他,再輸入一遍就可以了。

在linux系統下,root使用者有許可權更改其他使用者的密碼,而不用知道原來的密碼。其他使用者只能更改自己的密碼。如果當前不是root使用者,需要在命令前加sudo

使用證書的目的就是免密 ssh 登入。在本地環境建立乙個 ssh 金鑰,如果已建立可以跳過這步:

$ ssh-keygen -t rsa
找到金鑰存放的路徑,把id_rsa.pub裡面的內容,匯入到伺服器的/home/git/.ssh/authorized_keys裡面。

我在測試的時候,/home/git下面沒有.ssh,我就自己建了乙個。

如果有其他使用者也需要登入,把他們的公鑰也放到這裡,一行乙個。

選定乙個目錄作為git倉庫,在這個目錄下執行命令:

$ git init --bare sample.git

git就會建立乙個裸倉庫,裸倉庫沒有工作區,因為伺服器上的git倉庫純粹是為了共享,所以不讓使用者直接登入到伺服器上去改工作區,並且伺服器上的git倉庫通常都以.git結尾。

然後,把owner改為git:

$ chown -r git:git sample.git
如果當前不是root使用者,需要在命令前加sudo

git:x:1001:1001:,,,:/home/git:/bin/bash
改為:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣,git使用者可以正常通過ssh使用git,但無法登入shell,因為我們為git使用者指定的git-shell每次一登入就自動退出。

我們團隊只有兩三人,所以沒有做這個設定。

接下來就可以讓每個人在各自的電腦上執行git clone命令了。命令的格式如下:

$ git clone username@server:repositry path
例如:

$ git clone [email protected]:/home/git/repo/cm-refactor.git
這裡有乙個問題,git預設的埠號是22,而公司伺服器的 ssh 埠是2343,我們知道如果 ssh 登入的話是支援指定埠號的,例如:

$ ssh -p 2343 [email protected]
但是git clone命令不能這樣設定,這個時候就需要這樣:

$ git clone ssh://git@hostname:port/.../***.git
例如:

$ git clone ssh:
搭建git伺服器 - 廖雪峰

搭建屬於你自己的 git 伺服器 - 知乎

Linux下搭建git服務

第一步,安裝git sudo apt get install git 第二步,初始化git倉庫 先選定乙個目錄作為git倉庫,假定是 srv gitstock mylinuxgittest.git,在 srv gitstock目錄下輸入命令 sudo git init bare mylinuxgit...

在linux下搭建git環境

1 建立github賬號,2 linux建立ssh金鑰 plain view plain copy ssh keygen 一直預設就可以了 3 將公鑰加入到github賬戶資訊account settings ssh key 4 測試驗證是否成功。plain view plain copy ssh ...

linux環境下搭建FTP服務

了解 ftp主動模式,ftp被動模式 不管哪種模式,命令埠都是21 主動模式 資料服務端埠號是20,服務端主動連線,容易被客戶端防火牆牆了 被動模式 客戶端主動連線,埠號不確定,隨機分配 1.查詢系統是否安裝vsftpd軟體 rpm q vsftpd2.安裝vsftpd yum y install ...