最近乙個專案需要重構,由於還沒立項,不能申請版本庫,一開始開發的時候需要用**比較工具手動進行**合併。這樣做效率實在太低,不僅容易漏掉**,還可能引入bug。看到組裡面有很多測試用的伺服器,因此提出乙個方案,自己搭建git伺服器。
強烈推薦用ubuntu或debian,我自己阿里雲伺服器的ubuntu系統很順利就配置好了,公司的centos折騰了半天。
首先需要在伺服器上安裝git。如果是ubuntu系統執行下面的命令:
$ apt-get
install
git
如果是centos系統執行下面的命令:
$ yum -y install
git
如果當前不是root
使用者,需要在命令前加sudo
。
實際測試發現,adduser
和useradd
兩個命令都可以用。如果是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 ...