Home System Tutorial LINUX How to deploy Git server on Linux to make your code management more efficient

How to deploy Git server on Linux to make your code management more efficient

Feb 09, 2024 pm 11:09 PM
linux linux tutorial linux system linux command shell script it service embeddedlinux Getting started with linux linux learning

Git is a distributed version control system that allows you to collaboratively develop and manage code on different devices. If you want to set up a Git server on Linux so that your team can easily share and synchronize code, then this article is for you. We will introduce you how to install Git-related software on Linux, how to use Gitosis to manage users and warehouses, and how to use SSH to securely access Git servers. Whether you are a Linux novice or a Git master, this article can help you quickly set up a Git server and make your code management more efficient.

How to deploy Git server on Linux to make your code management more efficient

Build environment:

Server CentOS6.6 git (version 1.8.3.1)

Client Windows10 git (version 2.11.1.windows.1)

1. Install Git related software

Linux is the server-side system, Windows is the client system, and Git is installed respectively

Install server:

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

Install client:

Download Git for Windows, address: https://git-for-windows.github.io/

After installation, you can use Git Bash as the command line client.

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

Install 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
Copy after login

The following message appears indicating that the installation was successful

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

2. Create a git user on the server side to manage the Git service

[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用户下
Copy after login

3. Configure public key

Configure the manager on Windows. The git server needs some managers. By uploading the public key of the developer machine to the server, add it as the manager of the git server and open the git command line

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

4. Configure gitosis

Use git user and initialize 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     //添加权限
Copy after login

Clone gitosis-admin on the Windows machine to the administrator host

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

gitosis.conf: git server configuration file

keydir: stores the client public key

Configurationgitosis.confFile

$ vim gitosis.conf
[gitosis]

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

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

Create a local test warehouse on the Windows administrator machine and upload it to the git server

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

Submit to remote server

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

The server will automatically create a test warehouse

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

5. Add other git user developers

As the number of the company's development team continues to increase, it is troublesome to manually add the developer's private key to /home/git/.ssh/authorized_keys. The administrator of the above Windows machine collects the private key id_rsa.pub file of other developers. , and then transmitted to the server. After configuration, the user will obtain project permissions and can pull and push projects from the remote warehouse to achieve joint development projects.

$ 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
Copy after login

After the push is completed, the newly added developers can develop the project. Subsequent additions of personnel can be added in this way. The developers can directly clone the warehouse.

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
这样就可以了。
Copy after login

The above is the detailed content of How to deploy Git server on Linux to make your code management more efficient. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What computer configuration is required for vscode What computer configuration is required for vscode Apr 15, 2025 pm 09:48 PM

VS Code system requirements: Operating system: Windows 10 and above, macOS 10.12 and above, Linux distribution processor: minimum 1.6 GHz, recommended 2.0 GHz and above memory: minimum 512 MB, recommended 4 GB and above storage space: minimum 250 MB, recommended 1 GB and above other requirements: stable network connection, Xorg/Wayland (Linux)

Linux Architecture: Unveiling the 5 Basic Components Linux Architecture: Unveiling the 5 Basic Components Apr 20, 2025 am 12:04 AM

The five basic components of the Linux system are: 1. Kernel, 2. System library, 3. System utilities, 4. Graphical user interface, 5. Applications. The kernel manages hardware resources, the system library provides precompiled functions, system utilities are used for system management, the GUI provides visual interaction, and applications use these components to implement functions.

vscode terminal usage tutorial vscode terminal usage tutorial Apr 15, 2025 pm 10:09 PM

vscode built-in terminal is a development tool that allows running commands and scripts within the editor to simplify the development process. How to use vscode terminal: Open the terminal with the shortcut key (Ctrl/Cmd). Enter a command or run the script. Use hotkeys (such as Ctrl L to clear the terminal). Change the working directory (such as the cd command). Advanced features include debug mode, automatic code snippet completion, and interactive command history.

How to check the warehouse address of git How to check the warehouse address of git Apr 17, 2025 pm 01:54 PM

To view the Git repository address, perform the following steps: 1. Open the command line and navigate to the repository directory; 2. Run the "git remote -v" command; 3. View the repository name in the output and its corresponding address.

Where to write code in vscode Where to write code in vscode Apr 15, 2025 pm 09:54 PM

Writing code in Visual Studio Code (VSCode) is simple and easy to use. Just install VSCode, create a project, select a language, create a file, write code, save and run it. The advantages of VSCode include cross-platform, free and open source, powerful features, rich extensions, and lightweight and fast.

How to run java code in notepad How to run java code in notepad Apr 16, 2025 pm 07:39 PM

Although Notepad cannot run Java code directly, it can be achieved by using other tools: using the command line compiler (javac) to generate a bytecode file (filename.class). Use the Java interpreter (java) to interpret bytecode, execute the code, and output the result.

What is the main purpose of Linux? What is the main purpose of Linux? Apr 16, 2025 am 12:19 AM

The main uses of Linux include: 1. Server operating system, 2. Embedded system, 3. Desktop operating system, 4. Development and testing environment. Linux excels in these areas, providing stability, security and efficient development tools.

How to run sublime after writing the code How to run sublime after writing the code Apr 16, 2025 am 08:51 AM

There are six ways to run code in Sublime: through hotkeys, menus, build systems, command lines, set default build systems, and custom build commands, and run individual files/projects by right-clicking on projects/files. The build system availability depends on the installation of Sublime Text.

See all articles