zoukankan      html  css  js  c++  java
  • 搭建git服务器

    Github 公开的项目是免费的,但是如果你不想让其他人看到你的项目就需要收费。

    这时我们就需要自己搭建一台Git服务器作为私有仓库使用。

    linux下搭建git服务器,其实网上的教程很多,都很详细,本人菜鸟,弄了大半天,还是写个笔记。

    环境:debain

    功能:在debain上搭建git服务器,windows上上传已有的git项目(此项目不是从服务器上克隆的,就通过工具和命令创建的)

    一.安装git服务器

    #更新
    apt-get update
    
    #安装git(网上说是要安装依赖,我没有安装,也成功了,如果后期出现问题再加依赖吧!)
    apt-get install git
    
    #创建一个git用户,用来运行git服务,此用户创建后,在home下面会产生一个git文件
    adduser git 
    二、授权客户端用户
    
    #将客户端的公钥拷贝到/home/git/.ssh/authorized_keys下面  ,进入/home/git 查看是否有.ssh文件,这个文件是不可见的,所以不要用ls查看,直接cd .ssh,如果没有就无法进入
    #没有.ssh的情况,手动创建 
    mkdir .ssh
    
    #创建authorized_keys文件
    touch authorized_keys
    
    #这个文件里要存放的是所有客户端的公钥,一行一个,客户端产生公钥的办法是:
    #如果你没有Github账号,需要在官网https://github.com/注册一个账号。
    #注册完了之后,开始->Git Bash,使用以下命令生成SSH Key:
    ssh-keygen -t rsa -C "youremail@example.com"
    #后面的 your_email@youremail.com 改为你在 github 上注册的邮箱,之后会要求确认路径和输入密码(密码记住,一会上传项目需要),我们这使用默认的一路回车就行。 #成功的话会在C:/用户/Administrator/下生成.ssh文件夹,进去,打开 id_rsa.pub,复制里面的 key(全选,前面的ssh-rsa不要漏了),到/home/git/.ssh/authorized_keys里面
     
    三、创建项目库
    git init --bare /home/git_repository/hello.git

    四、授权hello.git仓库的所有者为git用户(很重要,不授权,上传项目的时候将导致权限不足,后面每个项目都需要授权所有者,在客户端访问的时候只能用这个用户名访问)

     chown -R git:git /home/git_repository/hello.git

    五、禁用shell登录

    出于安全考虑,git用户不允许登录shell,
    vim /etc/passwd

    找到类似下面的一行: git:x:
    1001:1001:,,,:/home/git:/bin/bash 改为: git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell 如此,git用户只能通过ssh使用git,却无法登录shell。

    六、客户端上传

    我这里是webstorm的angularjs项目,只要是git项目结构都可以
    查看远程仓库是否配置,如果配置了,下面会显示已经配置的远程仓库
    git remote -v

    #如果配置了远程仓库,先删除已配置的远程仓库,未配置的跳过此步骤
    git remote rm origin

    #配置刚才的服务器仓库(@前面的git是刚才执行的项目所有者的用户名,我的服务器ip是47.98.152.43,根据自己的ip进行修改)
    git remote add origin git@47.98.152.43:/home/git_repository/hello.git

    #上传(第一次需要加-u,后面每次直接git push就可以了)
    git push -u orgin master

    七、讲一下在webstorm中操作git的整个流程

      1.服务器端安装完git后创建git仓库(上面有详细步骤)

      2.需要使用这个仓库的同志都把自己的钥匙发个服务器端的同志,将其添加到git/.ssh/authorized_keys文件下 (上面有详细步骤)

      3.前端的同志创建一个anglar / ionic的项目 ,以ionic为例 : ionic start 项目名 blank

      4.创建完成之后,执行一下几条命令将项目发送到服务端的仓库作为第一个版本,也就是创始人,暂且叫做A用户

    git init (如果不是git项目,将其转化成git项目;如果式,不需要执行此命令)
    git add . (将项目目前的文件都添加的可以提交的区域,必须要执行此步骤,而且注意 . 前面有空格)
    git remote add origin git@47.98.152.44:/home/git_repository/verify.git  (添加远程仓库,在这之前确认该项目有没有远程仓库,如果有,就先删除,上面有详细操作)
    git push -u origin master  (第一次提交,必须执行此命令)
    

      5.A用户将项目提交到了仓库,B和C...用户就可以通过克隆将这么项目下载到本地

      git clone git@47.98.152.44:/home/git_repository/verify.git

     6.克隆到本地后,就是后面的提交到服务器仓库、更新到本地的问题啦,先看,提交到服务器仓库(克隆的项目,默认远程仓库的地址就是克隆的地址,所以不需要再次配置远程仓库的地址啦!查看远程仓库的地址,除了用命令,也可以 项目右键-> Git -> Repository -> Remotes )

      

      

      记住,这里一定要选择Commit andPush,否则代码不会更新到服务器仓库,只是你本地仓库更新了而已。

      7.将最新的代码更新到本地,在webstorm中可以执行下面的操作步骤

        项目右键 -> Git -> Repository -> Pull -> Pull

       应该也可以用命令更新,只是..我不知道而已!!!!!

     

    到此,本地项目上传到服务器 以及 从服务器更新项目 就完毕啦!



  • 相关阅读:
    PAT甲级1056Mice and Rice
    李宏毅机器学习课程笔记-5.3神经网络中的反向传播算法
    李宏毅机器学习课程笔记-5.2神经网络为什么要是深度的
    PAT甲级1014Waiting in Line
    python批量处理邮件:poplib和email快速上手教程
    李宏毅机器学习课程笔记-5.1深度学习之引言
    李宏毅机器学习课程笔记-4.2分类模型之概率生成模型
    李宏毅机器学习课程笔记-4.1分类简介及其与回归的区别
    类自动加载封装类
    var与let循环中经典问题
  • 原文地址:https://www.cnblogs.com/xyabk/p/8995045.html
Copyright © 2011-2022 走看看