Git是全球開發人員使用的開源版本控制系統。接下來,我們將介紹如何建立自己的Git Linux伺服器來託管專案。
Git伺服器用於託管專案的儲存庫,其中包含原始程式碼和其他核心檔案。雖然在大多數情況下,您可以依賴像GitHub這樣的全球知名的Git託管服務,但在某些情況下,最好託管您自己的個人Git伺服器,以增加隱私、可自訂性和安全性。
現在,讓我們學習如何在Linux上設定私有Git伺服器。
設定Git伺服器的先決條件
在開始設定您的私人Git伺服器之前,您需要擁有存取備用電腦或訂閱雲端提供者的權限。這一點很重要,因為您將把備用電腦設定為Git伺服器,並從本機電腦連接到該伺服器並執行Git操作。
雖然沒有明確的系統需求,但1GB的RAM應該足以讓Git伺服器正常運作。此外,請確保您在電腦上安裝並運行了Linux發行版。
第 1 步:在 Linux 伺服器上下載並安裝 Git

不用說,作為預備步驟,您需要在 Linux 伺服器上安裝 Git。啟動終端機並使用 Linux 發行版的套件管理器來安裝 Git:
在 Debian/Ubuntu 衍生產品上:
sudo apt install git
基於Arch的發行版:
sudo pacman -S git
在 CentOS/RHEL/Fedora 上:
sudo dnf install git
“
在您的系統上安裝 Git 後,請繼續執行以下步驟來設定您的 Linux 系統,以將您的 Git 儲存庫作為 Git 伺服器託管。
第 2 步:設定 Git 使用者帳號

#透過 SSH、RDP 或任何其他遠端存取協定連接到您的 Linux 伺服器。或者,如果您使用備用電腦作為伺服器,請將其開啟並建立新使用者帳戶來處理您的儲存庫。
ssh username@address sudo useradd git
“

新增使用者後,使用su指令切換到該使用者:
su git
建立專用git使用者帳戶是一種安全協議,可確保連接到您的 Git 伺服器的用戶端對機器上的資源的可見性和存取權限有限。這使您可以在多個團隊成員將存取您的伺服器的小組專案中安全地協作。
第 3 步:建立 .ssh 目錄並新增授權金鑰
建立一個**.ssh**目錄對於儲存公鑰和其他基本資料是必要的,這些資料將決定誰可以存取這個 Git 伺服器。首先,登入您先前建立的 git 使用者帳戶,建立 .ssh 目錄,並將存取權限限制為僅 git 使用者:
ssh git@address mkdir .ssh chmod 700 .ssh/ touch .ssh/authorized_keys
“

使用chmod命令保護目錄存取權限,以確保除了您之外沒有人可以對其進行更改。進入**.ssh目錄並使用****touch**命令建立一個新檔案“authorized_keys” 。
cd .ssh ssh-keygen -t rsa #如果您没有 id_rsa.pub 文件,请使用此命令 cat id_rsa.pub
“


您必须使用您希望授予对 Git 服务器访问权限的客户端的 SSH 公钥来更新此文件。暂停 SSH 会话并使用文本编辑器或cat 命令在本地计算机中打开**.ssh/id_rsa.pub**文件。该文件包含您的公共加密密钥,当将其写入authorized_keys 文件时,您将无需密码即可访问Git 服务器。
cd .sshvi authorized_keys
复制公钥并启动到 Git 服务器的新 SSH 连接。进入**.ssh**目录,使用文本编辑器打开 authorized_keys 文件并粘贴公钥。保存更改并退出。
从那时起,您应该能够在没有任何密码的情况下连接到服务器。对将连接到服务器的每台计算机重复此步骤。
第 4 步:创建一个目录来存储您的所有存储库
访问 Linux 服务器并创建一个目录或使用内置目录作为根目录。请记住,这是存储所有存储库的目录。为了更整洁地组织项目,这是一个很好的做法。
mkdir directory_name
创建目录后,继续本指南的最后一步以完成 Git 服务器的设置。
第 5 步:通过添加新项目启动开发
您现在实际上已经完成了 Git 服务器的设置。现在您只需要通过初始化存储库并将远程源添加到本地计算机来开始开发。使用cd命令进入父目录并创建一个**.git**项目目录:
cd parent_director ymkdir new_project.git
现在,初始化一个裸 git 存储库:
git init --bare
初始化存储库后,是时候在本地计算机上添加远程源了:
git remote add origin name git@address:new_project.git
这就是您在服务器端需要做的所有事情。现在任何经过身份验证的客户端都可以执行常规的 Git 操作,例如推送、拉取、合并、克隆等。要开始新项目,每次创建新项目时都必须重复此步骤。
通过执行 git push 测试其功能:
touch testfile git add testfile git commit -m "test file" git push name master git clone git@address:new_project.git
您的文件将成功推送到远程源。要交叉检查推送操作是否有效,您可以克隆存储库,您应该在存储库中找到测试文件。
Git 服务器的安全提示
随着 Git 服务器的启动和运行,您必须密切注意它的安全状态,因为它是您的个人服务器,维护和保护它免受外部威胁是您的唯一责任。要采用的一些最佳安全实践是:
- 禁用密码登录
- 将默认 shell 更改为 git-shell。这限制了登录用户发出任何非 git 命令
- 为 SSH 使用自定义端口
- 禁用root用户登录
- 定期备份数据
您可以在 Linux 服务器上实施许多此类安全配置和安全措施,以保护其免受攻击者的侵害并防止未经授权的访问。
以上是如何在 Linux 上設定私有 Git 伺服器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

linux设备节点是应用程序和设备驱动程序沟通的一个桥梁;设备节点被创建在“/dev”,是连接内核与用户层的枢纽,相当于硬盘的inode一样的东西,记录了硬件设备的位置和信息。设备节点使用户可以与内核进行硬件的沟通,读写设备以及其他的操作。

区别:1、open是UNIX系统调用函数,而fopen是ANSIC标准中的C语言库函数;2、open的移植性没fopen好;3、fopen只能操纵普通正规文件,而open可以操作普通文件、网络套接字等;4、open无缓冲,fopen有缓冲。

在linux中,可以利用“rpm -qa pcre”命令判断pcre是否安装;rpm命令专门用于管理各项套件,使用该命令后,若结果中出现pcre的版本信息,则表示pcre已经安装,若没有出现版本信息,则表示没有安装pcre。

端口映射又称端口转发,是指将外部主机的IP地址的端口映射到Intranet中的一台计算机,当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上;可以通过使用动态或固定的公共网络IP路由ADSL宽带路由器来实现。

在linux中,eof是自定义终止符,是“END Of File”的缩写;因为是自定义的终止符,所以eof就不是固定的,可以随意的设置别名,linux中按“ctrl+d”就代表eof,eof一般会配合cat命令用于多行文本输出,指文件末尾。

linux查询mac地址的方法:1、打开系统,在桌面中点击鼠标右键,选择“打开终端”;2、在终端中,执行“ifconfig”命令,查看输出结果,在输出信息第四行中紧跟“ether”单词后的字符串就是mac地址。

手机远程linux工具有:1、JuiceSSH,是一款功能强大的安卓SSH客户端应用,可直接对linux服务进行管理;2、Termius,可以利用手机来连接Linux服务器;3、Termux,一个强大的远程终端工具;4、向日葵远程控制等等。

linux中,lsb是linux标准基础的意思,是“Linux Standards Base”的缩写,是linux标准化领域中的标准;lsb制定了应用程序与运行环境之间的二进制接口,保证了linux发行版与linux应用程序之间的良好结合。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

記事本++7.3.1
好用且免費的程式碼編輯器

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),