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.
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
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版本
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
The following message appears indicating that the installation was successful
Using /usr/lib/python2.6/site-packages Finished processing dependencies for gitosis==0.2
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用户下
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服务器上
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 //添加权限
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
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
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
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 //上传本地所有分支代码到远程对应的分支上
The server will automatically create a test warehouse
[git@repositories]# pwd /home/git/repositories [git@linuxprobe repositories]$ ls gitosis-admin.git test.git
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
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 这样就可以了。
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!