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的意思是,所属用户:所属组。

  • 相关阅读:
    TSP(Traveling Salesman Problem)-----浅谈旅行商问题(动态规划,回溯实现)
    浅谈Java虚拟机内存中的对象创建,内存布局,访问定位
    Java设计模式---桥接Bridge模式
    Java设计模式---Strategy策略模式
    Java设计模式---ChainOfResponsibility责任链模式
    《前端工程化体系设计与实践》-笔记
    React 16.x 新特性思维导图
    javascript语言精粹-笔记
    react+redux+Instagram
    链表
  • 原文地址:https://www.cnblogs.com/immortalBlog/p/10222068.html
Copyright © 2011-2022 走看看