zoukankan      html  css  js  c++  java
  • git本地协同

    一.脚本下载

    init.sh

    #!/bin/bash
    cd code
    for dir in $(ls)
    do
      cd $dir
      git config --local receive.denycurrentbranch ignore
      echo $dir
      cd ..
    done

    gitShare.sh

    #!/bin/bash
    git clone serveName@serveIp:/gitWareHousePath

    二.操作步骤如下:

    1、gitRemote.sh下载代码,这个脚本可能更新

    2、执行init.sh脚本设置每个仓库,修改git默认的拒绝push操作

    3、客户端通过命令获取本机的公钥,发送给服务端

    #sublime-text ~/.ssh/id_rsa.pub

    4、服务器端通过命令将客户端的公钥加到自己认证文件中

    #sublime-text ~/.ssh/authorized_keys

    5、客户端可以通过脚本gitShare.sh获取服务器端代码

    更新代码: git pull

    提交代码: git push

    6、服务器端可以看到提交记录,但是要看到最新代码需要执行git reset --hard。

    7、服务器开启命令:

    #service sshd start 

    三. 原理说明

    1、主机0充当服务器,负责和远端仓库交互。注意要开启ssh服务

    2、主机1、2、3...等充当客户端,将公钥发给服务器,通过gitShare.sh脚本拉取代码,通过git pull/push完成代码更新和推送操作

    3、主机0也可以充当客户端,和其他客户端主机一样操作

    image.png

    server需要更新远端仓库代码:

    那么需要先git reset --hard,将分支节点拉到最新,然后再git pull --rebase即可,如果有冲突就解决掉后git rebase --continue

    client更新server更新后的代码:

    使用git pull --rebase

  • 相关阅读:
    UDP的坏处
    进程控制块(Process Control Block, PCB)
    分布式中一些关键概念的解释
    线程池的设计实现
    [原创] 同步、异步、阻塞、非阻塞详解
    常用场景对文件状态的影响
    echo使用说明,参数详解
    Linux下源码安装ffmpeg及ffmpeg的简单使用说明
    127.0.0.1、0.0.0.0和本机IP地址的区别和使用
    链路层的简介和MTU
  • 原文地址:https://www.cnblogs.com/Lunais/p/12577534.html
Copyright © 2011-2022 走看看