zoukankan      html  css  js  c++  java
  • 使用git在两台机器间同步代码

    前言
    本文记录了如何使用git来在两台机器间同步代码,一台机器A是本地linux,另一台机器B是腾讯云Linux。

    需求描述
    有一份代码放在linux机器A上,我需要在另一台机器B上查看并编辑它,为了方便两台机器之间相互同步修改后的代码,git相比于scp等手动操作的好处:

    1. 自动检查到修改的文件,不要自己去找改了那些文件

    2. 附带版本管理功能

    3. 便于扩展:有了第三台或更多机器的话,自己clone一份即可

    步骤
    1. 在存放原始代码的机器上,比如A,假设代码目录为:/codes/project,

    cd /codes/project
    
    # 创建git代码仓库
    git init
    git add .
    git commit -m "create project"
    
    # 切换到project父目录,创建一个project-bare目录
    cd ..
    mkdir project-bare
    cd project-bare
    
    # 从原始代码仓库创建bare仓库,作为“中央”仓库,其他机器(包括本机的原始仓库)往这里push,从这里pull
    git clone --bare ../project ./project-bare.git
    
    # 回到project仓库目录
    cd ../project
    
    # 把project-bare添加为remote,
    git remote add origin ../project-bare.git(此处推荐使用仓库的绝对地址)
    git branch --set-upstream-to=origin/master master


    2. 在机器B上操作:
    假设通过ssh来连接机器A

    git clone ssh://<username>@<ip>:<port>/codes/project-bare/project-bare.git ./project


    clone下来之后,在机器B上做修改,然后commit,push之后,在机器A上就可以pull到了。反之在机器A的project目录做修改,commit,push之后,在机器B上也能pull下来了。

    若要再添加一台开发机,重复第2步,clone操作即可。

    遇到的坑
    注意第1步中创建 project-bare.gti 的必要性

    如果B直接clone A上的project仓库,并且将其添加为remote,那么在执行git push操作的时候是会报错的,因为此时B不知道A是否也在对工作副本进行了修改,直接push过去可能造成working copy的冲突,而创建的project-bare仓库只记录仓库信息不保存working copy,作为一个中央仓库使用。


    ————————————————
    版权声明:本文为CSDN博主「elloop」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/elloop/article/details/54898512

  • 相关阅读:
    Supermap全面接触
    期末小结(二).应用技术
    发展需要大师,繁荣更需批评——GIS现状堪忧
    期末小结(三).我是玻璃缸里的鱼
    地信空间数据库实习讲稿(Oracle spatial)
    .net会取代JavaScript
    空间聚类(等回来之后完成)
    .Net Windows服务安装完成后自动启动
    规划网站,本教程将以图示为例构建网站;
    漫谈CSS和页面布局
  • 原文地址:https://www.cnblogs.com/hanrp/p/12531082.html
Copyright © 2011-2022 走看看