Home > System Tutorial > LINUX > body text

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

PHPz
Release: 2024-02-09 23:09:12
forward
455 people have browsed it

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!

source:lxlinux.net
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template