如何自己搭建簡單的Git服務器
程序員的代碼倉庫,總是需要托管一份在服務器,這樣才保險,也方便使用。今天就來談談 Git 服務器。
一、代碼托管服務
一般情況下,都不建議自己搭建 Git 服務器,而要使用現(xiàn)成的服務,也就是代碼托管服務。它們都是免費的。
GitHub Gitlab Bitbucket Codeberg sourcehut Gitee
其中,除了最后一家 Gitee 是國內的服務,其他都是國外的服務。
這些外部服務,就不多做介紹了。本文的重點不是它們,而是想談如果不得不自己搭建 Git 服務器,那該怎么做。
二、Git 服務器軟件
自己搭建 Git 服務器的原因,無非就是不方便訪問外網(wǎng),不愿意代碼放在別人的服務器,或者有一些定制化的需求。
這時,你可以選擇開源的 Git 服務器軟件。
Gitlab CE Gitea Gogs Onedev
這些軟件里面,Gogs 的安裝是最簡單的,但是功能相對比較弱。功能越強的軟件,安裝越復雜。
如果你只是想遠程保存一份代碼,并不在意有沒有 Web 界面,或者其他功能,那么根本不用安裝上面這些軟件,一行命令就夠了。
三、Git 倉庫的 SSH 傳輸
熟悉 Git 的同學可能知道,Git 默認支持兩種傳輸協(xié)議:SSH 和 HTTP/HTTPS。
服務器一般都自帶 SSH,這意味著,我們可以什么都不安裝,只通過 SSH 就把倉庫推到遠程服務器。
所以,一條命令就夠了。我們只要在遠程服務器上,建立同名的 Git 倉庫,服務器就搭建好了。
$ git init --bare [倉庫名].git
上面命令中,各個部分的含義如下。
(1)git init
:初始化一個 Git 倉庫。
(2)--bare
:表示新倉庫不需要工作目錄,只建立 Git 數(shù)據(jù)目錄。
(3)[倉庫名].git
:指定倉庫名,比如倉庫名是example
,那么就要建立一個叫做example.git
的 Git 數(shù)據(jù)目錄。
執(zhí)行這條命令以后,一個最簡易的 Git 服務器就誕生了。后面,我們就可以通過 SSH 連接,把本地代碼推送到這個遠程 Git 倉庫了。
四、操作演示
下面,我演示一下整個操作過程。
操作分成兩部分,先在遠程服務器操作,然后在本地計算機操作。
4.1 遠程服務器操作
下面的操作都在遠程服務器完成,假設你已經(jīng)通過 SSH 登錄上去了。不熟悉 SSH 的同學可以看參考這篇《SSH 入門》。
登錄遠程服務器的目的,主要是新建一個專門的用戶,所有的 Git 操作都通過該用戶完成。這一步其實不是必需的,但是這樣后期操作比較靈活(比如倉庫可以讓多人共享)。
$ sudo mkdir /home/git $ sudo useradd git $ sudo mkdir -m 700 /home/git/.ssh $ sudo cp ~/.ssh/authorized_keys /home/git/.ssh/
上面命令的含義如下。
(1)新建新用戶的主目錄/home/git
。
(2)新建一個用戶,用戶名為git
。
(3)新建新用戶的 SSH 目錄/home/git/.ssh
。
(4)把當前用戶的公鑰拷貝給git
用戶,以便密鑰登陸。
如果你只用密碼登錄,不使用密鑰登錄,那么上面第三步和第四步是不需要的,但是需要為git
用戶設定密碼,命令如下。
$ sudo passwd git
4.2 本機計算機操作
后面的操作都在本地計算機完成。
假定上一小節(jié)的遠程服務器的 IP 地址是192.168.1.25
,本地的 Git 倉庫名為example
。
$ ssh git@192.168.1.25 git init --bare example.git
上面命令中,ssh git@192.168.1.25
表示以git
用戶的身份,登錄到遠程服務器。后面的部分是 SSH 的一種語法,表示登錄后在遠程服務器執(zhí)行的命令,即新建一個遠程 Git 數(shù)據(jù)目錄example.git
。
這條命令運行完,就有了一個 Git 服務器了,然后就可以推送代碼了。
$ cd example $ git remote add myServer git@192.168.1.25:example.git $ git push myServer master
上面的命令先進入本地倉庫,為遠程服務器加一個別名,然后把代碼推送過去。
五、另一種操作方法
上面的例子使用git init --bare
命令,在遠程服務器新建 Git 數(shù)據(jù)目錄。其實,Git 數(shù)據(jù)目錄就是一個普通目錄,直接從本地計算機拷貝過去也可以。
$ scp -r example/.git git@192.168.1.25:/home/git/example.git
上面的命令使用scp工具將本地的 example
倉庫里面的.git
子目錄,拷貝到遠程服務器的目錄example.git
。這樣也能建立 Git 服務器。
到此這篇關于如何自己搭建簡單的Git服務器的文章就介紹到這了,更多相關搭建Git服務器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
jenkins插件pipeline集成持續(xù)交付管道全面介紹
這篇文章主要就jenkins插件pipeline集成持續(xù)交付管道相關內容做一個全面介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03CyberPanel配置教程,新手安裝?CyberPanel?終極指南
CyberPanel?是第一個LiteSpeed為web服務器的Linux面板,使用LiteSpeed?Cache簡單優(yōu)化之后?Gtmetrix?和?Google?PageSpeed?Insights?的評分幾乎都是A,這個結果讓人十分滿意2023-12-12網(wǎng)站控制臺directadmin中文手冊 Linux下虛擬主機管理
特別注意:本站所有轉載文章言論不代表本站觀點,本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯(lián)系2009-11-11