zoukankan      html  css  js  c++  java
  • #阿里云#云服务器搭建git服务器


    前言:大家都知道,git是非常方便的版本控制工具,目前网上有很多免费的git仓库可以给我们使用,但是有些时候我们并不放心将我们的项目寄放在别人的服务器上,这个时候就需要自己搭建一个git服务器,十分的简单。这文介绍如何在阿里云服务器上搭建自己的git服务器。


    1.安装git

    在Ubuntu系统中,git安装只需要简单命令就可以完成,只需要打开终端,输入如下命令:

    sudo apt-get update
    sudo apt-get install git

    git是分布式的,每一个安装了git的电脑,既是客户端,也是服务器,git与git之间可以相互通信,而我们所谓的git服务器,实际上和我们自己的电脑没有什么本质上的差别。但是,我们为了更有效的管理项目,都采取中心化的管理方式,因此创建一个“git服务器”,作为其他所有人提交代码的最终终端。

    2.创建git用户及权限

    我们当然不允许直接使用root用户来与服务器进行通信交互了,所以,我们创建一个git用户,作为今后提交代码的用户。

    使用命令:adduser git,创建新用户。可以在/home目录下看到新出现的git目录。

    由于git用户的特殊性,我们不希望用户通过ssh连接到服务器上面去,所以,需要给git用户添加一定的权限。编辑系统权限文件:

    • 使用命令:vi /etc/passwd,打开文件;
    • 找到类似一行:git:x:1001:1001:,,,:/home/git:/bin/bash,应该是在最后一行;
    • 修改为:git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell。

    3.公钥

    git里面比较特殊的一步操作,通信的时候,客户端与服务器需要一个证书进行验证。

    (1)客户端(本机)如何生成公钥?可参考:生成 SSH 公钥

    Linux自带ssh工具,可以很方便地生成和查看ssh公钥。

    • 查看本机时候存在ssh公钥,命令:cat ~/.ssh/id_rsa.pub。
    • 若存在公钥,上述命令会返回一个很长的字符串,那个东西就是我们想要的公钥。
    • 若不存在公钥,返回为空或者报错,使用命令:ssh-keygen。不用管问什么,默认直接回车就行,创建完毕之后再次查询公钥,返回我们需要的字符串了。

    (2)服务器添加公钥:在/home/git目录下,使用命令:mkdir .ssh,cd .ssh,vi authorized_keys。然后把自己的公钥粘贴进去,保存退出。(vim常用命令总结

    如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。

    4.初始化一个git仓库

    我选择把我的仓库放在/var目录下,当然可以放在其他地方,最后只需要记住完整目录即可。

    新建git目录并修改其权限,使用git命令初始化一个仓库:

    • 进入想要的目录:cd /var。
    • 创建文件夹:mkdir git。
    • 修改权限:chown -R git:git git,chmod 777 git。
    • 进入git目录:cd git。
    • 初始化自己的仓库:git init --bare MyWeb.git。

    完成之后,我们的远程仓库地址为:git@IP地址:/var/git//MyWeb.git。这的远程地址在之后会用得上。

    注意:.git目录必须要有可读写权限,因为当我们在push的时候,是使用git用户推送到服务器上面去,会有一个写入的过程,如果不赋予可写权限,push就会失败。所以使用命令:chown -R git:git MyWeb.git。

    5.测试

    (1)克隆项目:git clone git@IP地址:/var/git/MyWeb.git

    (2)上传项目:

    • 本地项目文件夹目录下,鼠标右键“Git Bash Here”
    • 建立本地仓库,命令:git init。
    • 添加目录所有文件,命令:git add *。提交命令:git commit -m "init files"。
    • 与远程仓库绑定,命令:git remote add origin git@47.95.192.***:/var/git/MyWeb.git。
    • 绑定成功后就可以使用push和pull命令进行上传和下拉了,建议先pull一下:git pull --rebase origin master。成功后在push上去:git push -u origin master。

    在push的时候克隆会遇到一些问题,根据错误提示百度解决方案就好了,有可能是权限原因,或者是文件冲突等。比如我遇到了错误:failed to push some refs to 'git@47.95.192.***:/var/git/MyWeb.git' ,原因是远程仓库中有文件不在本地仓库,需要先pull才能push。

    好了,现在可以正常使用自己的git服务器了,后续更多git操作就不多说了,初学者可以看看廖雪峰的git教程

    参考链接

    在阿里云上搭建自己的git服务器:https://www.cnblogs.com/herd/p/7063091.html

    push出现错误:https://jingyan.baidu.com/article/f3e34a12a25bc8f5ea65354a.html


     本文版权归作者AlvinZH和博客园所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

  • 相关阅读:
    176. Second Highest Salary
    175. Combine Two Tables
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
    169. Majority Element
    168. Excel Sheet Column Title
    167. Two Sum II
    160. Intersection of Two Linked Lists
    个人博客记录
    <meta>标签
  • 原文地址:https://www.cnblogs.com/AlvinZH/p/8869806.html
Copyright © 2011-2022 走看看