zoukankan      html  css  js  c++  java
  • [BUG]Git Sever搭建与相关错误处理

    搭建

    安装git:

    sudo apt-get install git
    

      

    创建一个git用户,用来运行git服务:(用自己的用户也可以,其实)

    sudo adduser git
    

    创建证书登录:

    收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

    (可以在客户端通过ssh-copy-id user@serverip搞定)

    第四步,初始化Git仓库:

    先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:

    sudo git init --bare sample.git
    

      

    Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git: $ sudo chown -R git:git sample.git

    第五步,克隆远程仓库:

    现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:

    git clone git@server:/srv/sample.git
    
    Cloning into 'sample'...
    
    warning: You appear to have cloned an empty repository
    

      

    剩下的推送就简单了:

    (如果客户端已经有一个git项目了)

    如一个叫ea_network_pruning的项目,server端也有一个叫ea_network_pruning.git的bare项目。则:

    git remote add origin git@ip:~/ea_network_pruning.git
    

      

     然后: 

    git push -u origin master
    

      

    修改remote url:

    首先移除remote url:

    git remote remove origin

    然后更新remote url:

    git remote add origin xx@xxxx.git

    然后pull:

    git pull origin master

    再设置push的参数:

    git push --set-upstream origin master

    最后add,commit后,push当前结果:

    git push

    报错:git remote error insufficient permission for adding an object to repository

    解决:

    这是因为远端服务器上,git项目文件夹的own不属于我们连接的那个账号(很可能是root)。登陆远端服务器,修改该项目的的所属人:

    sudo chown -R git:git /home/git/project/doc.git

    git:git的意思是,所属用户:所属组。

  • 相关阅读:
    网站性能之meta标签
    布局中的css要素
    MVC中配置OutputCache的VaryByParam参数无效的问题
    C# 4.0 类与继承
    想要充值手机话费吗???亿矿网找错误送话费啦
    .Net Core 依赖注入
    Hadoop实战内容摘记
    Thead,TheadPool,Task,async,await 的前世今生
    VS Code 中 使用 Git版本控制工具
    dotnet 命令大全-理论版
  • 原文地址:https://www.cnblogs.com/immortalBlog/p/10222068.html
Copyright © 2011-2022 走看看