zoukankan      html  css  js  c++  java
  • 如何在Linux上安装Git Server

    When it comes to Git hosting, you have a number of options available. GitHub, Gitlab and Bitbucket are popular solutions, but running your own Git server is an alternative worth considering.

    Setting up a Git Server allows you to create private repositories without the restrictions of the providers’ free plans.
    In this guide, we explain how to set up a bare Git server on Linux. This setup is good if you have few repositories and the collaborators are tech-savvy. Otherwise, you should consider installing a self-hosted git application such as Gitea, Gogs, or Gitlab.

    The Git server can be set up on any remote Linux machine or even on your local system.

    Setting Up the Git Server

    The first step is to install Git on your server.

    If you are using Debian or Ubuntu, refresh the local package index and install git by running the following commands as sudo user:

    sudo apt update && sudo apt install git

    To install the git package on CentOS servers type:

    sudo yum install git

    Next, create a new user that will manage the Git repositories:

    sudo useradd -r -m -U -d /home/git -s /bin/bash git

    The user home directory is set to /home/git. All the repositories will be stored under this directory. We did not set a password for the user “git”, the login will be possible only using the ssh keys.

    Switch to user “git” using the su command:

    sudo su - git

    Run the following commands to create the SSH directory and set the correct permissions:

    mkdir -p ~/.ssh && chmod 0700 ~/.ssh

    Create a file named ~/.ssh/authorized_keys which will hold the authorized users’ SSH keys:

    touch ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys

    That’s it. The server setup is complete. You're now ready to create your first Git repository.

    Run the following command to initiate a new empty repository:

    git init --bare ~/projectname.git

    You can name the directory as you want. The important thing is to create the repository under the “git” user home directory.

    Output
    Initialized empty Git repository in /home/git/projectname.git/

    Configuring Local Git Repository

    To be able to push the local git changes to the Git server you'll to add your local user SSH public key to the remote “git” user's authorized_keys file.

    If you already have an SSH key pair created on your local system, you can display the public key by typing:

    cat ~/.ssh/id_rsa.pub

    The output should look something like the following:

    Output
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDj4ndLNB0XaYh329WWqJyctxJRavbO/upkdj0J2g7DUIcIPAIPE/5WPjKdSGidOgHcyw49EuJko8kFO92KWlHQV70J7zPmoRttWCPDmx9KK7eKq8rHe/Fhv79E8W9d52DUD1YVHB2EZ7XXERzeWwXlLw7hRcuc0Y4YLvDtl3NHf0rnW+Vr3ZC9VCNNhqPdXwqeZFfNn6hrzK/cRQEhVmbVSyyJz2Tcyl8e/vsFQ3fgyTTD2UoQ6o2w9GuKhueROR0PuG59nabcdefVzMCLCDLTcMf+qeXvomj4nzw+6KAFAvxZQXtdzHh7qiwo2Wte4iPUYaPEwE2PtcFa44mq3IqZ3ZkY0YQ/Aggc9+Pezuv5yuzFrPRzyy9nVCZ32KeesBwz+a+YI2Mrj4u+3t+vuJcRwEdgf2/drj09pIU5jYE6h2JdaTZvT/+Tp6ysQz375OXJNZo7eqKiU/L7BUHqEc3iOzuPaSEOFQ1K8ka8PrtTNFuDh2qVGdSFanpVm/HgdK+lpYA7j8BkMq0fziDfMtBdsXA9+MuYypEf9q8GB2F+7mb9SsrQ1qhMGlx9XLf5vE3pHB2iWW7Am6WmE8EOPKq2ejdWlZ+lNcdUeEufOebhnO+R3Sc8uKACEg6G26u3H7rdmxWzVeWXvqXw58WEDXvkX6KoX+0W1JMZ0HBBiiRIpQ== liukuo.lk@163.com

    If you get an error message saying No such file or directory, it means that you do not have an SSH key pair generated on your local machine.

    To generate a new SSH key pair use the following command: 

    ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

    Copy the output from the cat command above and go back to the Git server console.

    On the server, open your text editor and paste the public key that you copied from your local machine into the ~/.ssh/authorized_keys file:

    sudo nano /home/git/.ssh/authorized_keys

    The entire public key text should be on a single line.

    We're assuming that Git package is already installed on your local machine. If not, install it in the same way as explained in the previous sections.

    If you have an existing unversioned project, navigate to the project directory. If you are starting from scratch, create the project directory, and navigate to it:

    cd /path/to/local/project

    Initialize a git repository:

    git init .

    The last step is to add the git remote to your local repository:

    git remote add origin git@git_server_ip:projectname.git

    Do not forget to replace git_server_ip with your Git server hostname or IP address.

    To verify that everything is setup up correctly, create a test file:

    touch test_file

    Add the changes to the staging area:

    git add .

    Commit the changes:

    git commit -m "descriptive message"

    Push the local repository changes to a remote repository:

    git push -u origin master

    If everything is set up correctly, the output should look something like this:

    Output
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 218 bytes | 218.00 KiB/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git_server_ip:projectname.git
     * [new branch]      master -> master
    Branch 'master' set up to track remote branch 'master' from 'origin'.

    To add a new collaborator, just copy its public SSH key to the “git” user's ~/.ssh/authorized_keys file.

    You can use the same steps to create new repositories. It is important to note that the remote repository must exist before you add the git remote to your local repository.

    Conclusion

    In this tutorial, we have shown you how to set up your own private Git server and create repositories.

    If you hit a problem or have feedback, leave a comment below.

    参考链接:https://linuxize.com/post/how-to-setup-a-git-server/

  • 相关阅读:
    Allegro PCB转换成PADS方法
    Altium Designer只显示某一层,隐藏其他层
    DCDC功率电感(Inductor)选型
    DDR布线教程
    DDR地址、容量计算、Bank理解
    DDR3中的ODT(On-die termination)
    LINUX文件系统操作指令之四
    linux系统之间通过nfs网络文件系统挂载设置方法
    linux消息队列编程实例
    system()函数
  • 原文地址:https://www.cnblogs.com/lhking/p/12214398.html
Copyright © 2011-2022 走看看