The reason why this post seems so long is because over 17 people write this content for our viewers. so enjoy
A programmer’s code repository always needs to be hosted on a server, which is safe and easy to use.
Let’s talk about Git servers today.
1. Code hosting service
In general, it is not recommended to build a Git server by yourself, but to use an off-the-shelf service, that is, a code hosting service. They are all free.
Among them, except for the last Gitee, which is a domestic service, the others are foreign services.
These external services will not be introduced further. The focus of this article is not on them, but on what to do if you have to set up your own Git server.
2. Git server software
The reason for building a Git server by yourself is nothing more than inconvenient access to the external network, unwillingness to place the code on someone else’s server, or some customization requirements.
At this point, you can choose the open source Git server software.
Among these software, the installation of Gogs is the easiest, but the function is relatively weak. The more powerful the software, the more complicated the installation.
If you just want to save a piece of code remotely and don’t care if there is a web interface or other functions, then you don’t need to install the above software at all, a single command is enough.
3. SSH transmission of Git repository
Students familiar with Git may know that Git supports two transport protocols by default: SSH and HTTP/HTTPS.
Servers generally come with SSH, which means,We can install nothing and just push the repository to the remote server via SSH.
So, one command is enough. As long as we create a Git repository with the same name on the remote server, the server is set up.
$ git init --bare [仓库名].git
In the above command, the meaning of each part is as follows.
(1)git init
: Initialize a Git repository.
(2)--bare
: Indicates that the new repository does not need a working directory, only the Git data directory is created.
(3)[仓库名].git
: Specify the warehouse name, for example, the warehouse name isexample
then create aexample.git
The Git data directory.
After executing this command, a simplest Git server is born. Later, we can connect via SSH and push the local code to this remote Git repository.
4. Operation Demonstration
Below, I demonstrate the entire operation process.
The operation is divided into two parts, first on the remote server and then on the local computer.
4.1 Remote server operation
The following operations are all done on the remote server, assuming you are logged in via SSH.Students who are not familiar with SSH can refer to this articleGetting Started with SSH。
The purpose of logging in to the remote server is to create a special user through which all Git operations are done. This step is actually not necessary, but it is more flexible in the later operation (for example, the warehouse can be shared by multiple people).
$ sudo mkdir /home/git $ sudo useradd git $ sudo mkdir -m 700 /home/git/.ssh $ sudo cp ~/.ssh/authorized_keys /home/git/.ssh/
The meaning of the above command is as follows.
(1) Create a new user’s home directory/home/git
。
(2) Create a new user with the user namegit
。
(3) Create a new user’s SSH directory/home/git/.ssh
。
(4) Copy the current user’s public key togit
user, so that the key can be logged in. For a detailed explanation, please refer to“SSH key login”。
If you only log in with a password and do not log in with a key, then the third and fourth steps above are not required, but you need togit
The user sets the password, the command is as follows.
$ sudo passwd git
4.2 Local computer operation
The following operations are all done on the local computer.
Assume that the IP address of the remote server in the previous section is192.168.1.25
the local Git repository is namedexample
。
$ ssh [email protected] git init --bare example.git
In the above command,ssh [email protected]
means withgit
As the user, log on to the remote server.The latter part is a syntax of SSH, indicating the command executed on the remote server after logging in, that is, creating a new remote Git data directoryexample.git
。
After this command runs, you have a Git server, and you can push the code.
$ cd example $ git remote add myServer [email protected]:example.git $ git push myServer master
The above command first enters the local warehouse, adds an alias to the remote server, and then pushes the code to it.
Five, another method of operation
The above example usesgit init --bare
command to create a new Git data directory on the remote server. In fact, the Git data directory is an ordinary directory, and it can be copied directly from the local computer.
$ scp -r example/.git [email protected]:/home/git
The above command usesscp
toolthe local example
in the warehouse.git
subdirectory, copied to the directory of the remote serverexample.git
. This will also create a Git server.
6. Reference link
(Finish)