搜尋
首頁系統教程Linux如何在Linux上部署Git伺服器,讓你的程式碼管理更有效率

如何在Linux上部署Git伺服器,讓你的程式碼管理更有效率

Feb 09, 2024 pm 11:09 PM
linuxlinux教程linux系統linux指令shell腳本it服務嵌入式linuxlinux入門linux學習

Git是一個分散式版本控制系統,它可以讓你在不同的裝置上協同開發和管理程式碼。如果你想在Linux上建立一個Git伺服器,讓你的團隊可以方便地分享和同步程式碼,那麼這篇文章就是為你準備的。我們將為你介紹如何在Linux上安裝Git相關軟體,如何使用Gitosis來管理使用者和倉庫,以及如何使用SSH來安全地存取Git伺服器。無論你是Linux新手還是Git高手,這篇文章都能幫助你快速地建立一個Git伺服器,讓你的程式碼管理更有效率。

如何在Linux上部署Git伺服器,讓你的程式碼管理更有效率

建置環境:

伺服器 CentOS6.6 git(version 1.8.3.1)

客戶端 Windows10 git(version 2.11.1.windows.1)

1. 安裝Git相關軟體

Linux是伺服器端系統,Windows作為客戶端系統,分別安裝Git

安裝服務端:

#
[root@linuxprobe ~]# yum install -y git
[root@localhost ~]# git --version     //安装完后,查看 Git 版本
git version 1.8.3.1

安裝客戶端:

#下載 Git for Windows,網址:https://git-for-windows.github.io/

安裝完之後,可以使用Git Bash作為命令列客戶端。

$ git --version
git version 2.11.1.windows.1       //安装完之后,查看Git版本

安裝Gitosis

#
[root@linuxprobe ~]# cd software/
[root@linuxprobe software]# git clone https://github.com/res0nat0r/gitosis.git
[root@linuxprobe software]# yum install python-setuptools -y
[root@linuxprobe software]# cd gitosis
[root@linuxprobe gitosis]# sudo python setup.py install

出現下面的訊息表示安裝成功了

 Using /usr/lib/python2.6/site-packages
 Finished processing dependencies for gitosis==0.2

2. 伺服器端建立git用戶來管理Git服務

#
[root@linuxprobe ~]# id git      //查看git用户是否存在
id: git: no such user
[root@linuxprobe ~]# useradd git
[root@linuxprobe ~]# echo "123" | passwd --stdin git
[root@linuxprobe ~]# su - git   //切换到git用户下

3. 設定公鑰

在Windows上設定管理者,git伺服器需要一些管理者,透過上傳開發者機器的公鑰到伺服器,新增成為git伺服器的管理者,開啟git命令列

$ ssh-keygen -t rsa     //一直回车,不需要设置密码
~ scp ~/.ssh/id_rsa.pub git@192.168.34.184:~    //复制到git服务器上

4. 設定gitosis

使用git使用者並初始化gitosis

[root@linuxprobe ~]# cd .ssh
[root@linuxprobe ~]# gitosis-init 
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
[root@linuxprobe ~]# chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update     //添加权限

在Windows上機器上clone gitosis-admin到管理者主機

$ git clone ssh://git@192.168.34.184:22/gitosis-admin.git
$ cd gitosis-admin
$ ls
$ gitosis.conf keydir

gitosis.conf: git伺服器設定檔

keydir: 存放客戶端公鑰

配置gitosis.conf

$ vim gitosis.conf
[gitosis]

[group gitosis-admin]            #组名称
members = yueyong@SHA2-001       #组成员
writable = gitosis-admin         #项目名称

[group test]               //这里添加了"test"项目组,上传到个git服务器
members = yueyong@SHA2-001
writable = test

在Windows管理者機器上建立本機test倉庫,並上傳到git服務端

$ git config --global user.name "Your Name"         //第一次提交需要设置个人信息,设置用户名和邮箱
$ git config --global user.email "email@example.com"
$ cd ~/repo 
$ mkdir test
$ git init
$ tocuh readme.txt

提交到遠端伺服器

$ git add .
$ git commit -a -m 'init test'
$ git remote add repo git@192.168.186.129:test.git   //repo 远程库的名称,可以换成任意名称
$ git push repo master    //上传本地所有分支代码到远程对应的分支上

服務端會自動建立test倉庫

[git@repositories]# pwd
/home/git/repositories
[git@linuxprobe repositories]$ ls
gitosis-admin.git  test.git

5.新增其他git使用者開發者

由於公司開發團隊人數不斷增多,手動添加開發者私鑰到/home/git/.ssh/authorized_keys比較麻煩,透過上面的Windows機器的管理者統一收集其他開發者的私鑰id_rsa.pub文件,然後傳到伺服器上,配置好後,使用者即獲得項目權限,可以從遠端倉庫拉取和推送項目,達到共同開發項目。

$ cd ~/gitosis-admin/keydir
$ mv ~/id_rsa.pub zhangsan@SHA2-002.pub          //修改公钥为主机名.pub
$ vim gitosis.conf
  [group test]
  writable = test
  members = yueyong@SHA2-001 zhangsan@SHA2-002    //添加成员
$ git add .
$ git commit -m "add zhangsan@SHA2-002 pub and update gitosis.conf"
$ git push repo master

推送完成後,新加進來的開發者就可以進行專案的開發了,後續增加人員可以這樣加入進來,開發者直接把倉庫clone下來就可以了。

git clone git@192.168.34.184:/home/git/repositories/test.git
报错问题:ERROR:gitosis serve main repository read access denied
根据这个报错,可以看出key是没问题的,通过排查,发现不应该把这个/home/git/repositories/test.git写全,
git clone git@192.168.34.184:test.git
这样就可以了。

以上是如何在Linux上部署Git伺服器,讓你的程式碼管理更有效率的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:良许Linux教程网。如有侵權,請聯絡admin@php.cn刪除
如何使用QEMU在Linux上安裝和運行Freedos如何使用QEMU在Linux上安裝和運行FreedosApr 29, 2025 am 10:36 AM

本指南向您展示瞭如何使用QEMU模擬器在Linux環境中建立免費和開源DOS兼容操作系統。 這使您可以在現代硬件上運行Legacy DOS軟件和遊戲,而無需分開

如何在Linux Mint上安裝KDE等離子體22如何在Linux Mint上安裝KDE等離子體22Apr 29, 2025 am 10:10 AM

Linux Mint,这款以简洁、稳定和易用性著称的操作系统,广受用户欢迎,尤其适合新手。 它默认使用Cinnamon桌面环境,提供简洁友好的用户界面。但如果您偏好不同的外观或需要更多自定义选项,可以安装其他桌面环境,例如KDE Plasma。 KDE Plasma是一个功能丰富、高度可定制且视觉效果出色的桌面环境,提供现代时尚的用户体验。它拥有广泛的自定义选项、高级窗口管理功能和精致的美感,非常适合希望更好地掌控桌面体验的用户。 本指南将逐步指导您在Linux Mint 22上安装KDE Pl

如何減少Linux上的高RAM和CPU使用如何減少Linux上的高RAM和CPU使用Apr 29, 2025 am 10:05 AM

Linux系統性能優化:降低RAM和CPU使用率 Linux系統功能強大且高效,但高RAM和CPU使用率會降低性能,減慢應用程序速度,甚至導致服務器、工作站或嵌入式系統崩潰。因此,優化資源使用對於系統平穩運行至關重要。 本指南將探討降低Linux系統RAM和CPU使用率的實用方法,涵蓋監控工具、進程管理、內核調整和系統優化技術,幫助您保持系統高效運行。 識別資源密集型進程 降低RAM和CPU使用率的第一步是識別哪些進程消耗了最多的資源。為此,可以使用以下幾個命令行工具: a. 使用top

如何在Almalinux 8/9中啟動到單用戶模式如何在Almalinux 8/9中啟動到單用戶模式Apr 29, 2025 am 09:46 AM

AlmaLinux 8 和 9 的單用戶模式 (也稱為救援模式) 指南 單用戶模式是一個精簡的 Linux 環境,允許系統管理員執行維護任務、排查問題和從系統故障中恢復。當您需要重置 root 密碼、修復配置錯誤、修復損壞的文件系統或調查阻止正常啟動的系統錯誤時,單用戶模式特別有用。 作為基於 RHEL 的發行版,AlmaLinux 8 和 9 通過 GRUB 引導加載程序提供了一種簡單的進入單用戶模式的方法。本指南將逐步解釋如何在 AlmaLinux 8 和 9 上進入單用戶模式。 什麼是單用

Linux故障排除:5個常見問題以及如何解決這些問題Linux故障排除:5個常見問題以及如何解決這些問題Apr 29, 2025 am 09:42 AM

Linux系统以其强大和可靠性著称,但即使是经验丰富的用户也会遇到意想不到的问题。无论是意外删除的文件、忘记的root密码,还是系统运行缓慢,高效的故障排除技巧是成为Linux专家的关键。 本指南将介绍一些常见的Linux问题解决场景以及逐步解决方案,这些问题在系统管理员、开发人员和日常Linux用户中普遍存在。 场景一:意外删除重要文件 您意外地使用rm命令删除了一个重要文件,现在需要恢复它。与Windows和macOS不同,Linux没有内置的“回收站”来存储从终端删除的文件。 恢复选项取决

如何在Linux上永久更改Docker文件夾權限如何在Linux上永久更改Docker文件夾權限Apr 29, 2025 am 09:35 AM

Docker 是一款強大的工具,允許您在稱為 容器 的隔離環境中運行應用程序。但是,有時您可能需要更改 Docker 文件夾的權限,以確保您的應用程序可以訪問必要的文 件和目錄。 本文將指導您完成在 Linux 系統上永久更改 Docker 文件夾權限的過程。 了解 Docker 文件夾權限 默認情況下,Docker 將其數據(包括鏡像、容器和卷)存儲在 Linux 系統上的特定目錄中。最常見的目錄是 /var/lib/docker。 這些文件夾的權限決定了誰可以讀取、寫入或執行其中的文件。如果

像專業人士一樣管理Docker:在Linux上安裝Portainer CE像專業人士一樣管理Docker:在Linux上安裝Portainer CEApr 29, 2025 am 09:24 AM

用Linux上的Portainer CE簡化Docker Management:逐步指南 通過命令行管理Docker容器可能令人生畏,尤其是對於新移民而言。 Portainer CE(社區版)提供免費,輕巧且直觀的Solutio

如何在Linux上使用Whisper AI進行現場音頻轉錄如何在Linux上使用Whisper AI進行現場音頻轉錄Apr 29, 2025 am 09:18 AM

本指南詳細介紹瞭如何在Linux系統上安裝和使用Whisper AI進行實時語音到文本轉錄。 Whisper AI是一種Openai創作,可提供多種語言的高準確性轉錄。雖然主要是為批處理設計的

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具