来源:http://blog.csdn.net/elloop/article/details/54898512

前言

本文记录了如何使用Git来在两台机器间同步代码,一台机器是Linux,另一台是windows。

需求描述

有一份代码放在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# 从原始代码仓库创建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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 212. 在其它机器上,比如B:

假设通过ssh来连接机器A

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

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,作为一个中央仓库使用,详情参考bare仓库和non-bare仓库的区别这篇文章


作者水平有限,对相关知识的理解和总结难免有错误,还望给予指正,非常感谢!

在这里也能看到这篇文章:github博客,CSDN博客, 欢迎访问

使用git在两台机器间同步代码相关推荐

  1. git 局域网 两台电脑之间同步 (不用安装Java和Gitblit和OpenSSH)

    git 两台电脑之间同步,两台电脑同属一个局域网,可以是windows和windows,也可以是windows和ubuntu. (不用安装Java和Gitblit和OpenSSH),可以不用连接外网. ...

  2. mysql主库从库在同一台服务器_MySQL_MySQL 数据库两台主机同步实战(linux),当一个从服务器连接到主服务 - phpStudy...

    MySQL 数据库两台主机同步实战(linux) 当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器 ...

  3. linux两台机器间实现无密远程登录(使用证书)

    思路分析: 比如有两台主机,192.168.0.69,192.168.0.70.其中192.68.0.69上安装有ansible,为了使用ansible进行自动化运维,我们需要实现192.168.0. ...

  4. linux同步两台mysql数据,Mysql入门MySQL 数据库两台主机同步实战(linux)

    <Mysql入门MySQL 数据库两台主机同步实战(linux)>要点: 本文介绍了Mysql入门MySQL 数据库两台主机同步实战(linux),希望对您有用.如果有疑问,可以联系我们. ...

  5. ARDUINO:控制两台步进电机同步运转

    要控制两台步进电机同步进行运转,即同时起步,同时加速,同时到达最大速度,同时减速,最后同时停止. 这是要有一定的算法的: 假如B1电机所走的路程是B2的n倍,在同时起步的前提下,v1=n*v2,a1= ...

  6. EndNote两台电脑同步library

    之前参考网上写的两台电脑同步的方法,从笔记本上生成了.enlx文件,但复制到台式机上,双击后出现的library仍是空白,找了很多资料,终于明白问题所在了!泪目/(ㄒoㄒ)/~~ 请一定一定看一下两台 ...

  7. STC用PCA测量脉宽_【鼎阳硬件智库原创︱测试测量】基于两台SDG2000X同步功能产生同步的4路信号...

    陈滨慰 鼎阳硬件设计与测试智库专家组成员 绝大部分的函数/任意波形发生器都是两通道的,包括指标上非常卓越的鼎阳科技SDG2000X系列.如何产生同步的4路信号? 下面以SDG2000X为例来说明基于两 ...

  8. svn两台服务器同步文件,两台svn服务器定时同步

    两台svn服务器定时同步 内容精选 换一换 同一区域.不同可用区的两台裸金属服务器,如果在同一VPC,则内网互通,在同一VPC且同一子网时进行二层通信,在同一VPC不同子网时进行三层通信.通信时,两台 ...

  9. pycharm + git实现两台电脑代码同步

    说明:此篇文章是作者方便日后查阅所有,请不要按本文的方法搭建 1.下载msysygit,https://git-for-windows.github.io/ 点击download获取下载链接,可能由于 ...

最新文章

  1. ps怎么把一个颜色替换成另一个颜色_图标设计,用PS制作一款小清新的拟物时钟...
  2. java二叉树合并_Java(树的前中后序遍历构造二叉树题型整合)前序和中序、中序和后序、前序和后序遍历序列构造二叉树算法整合归纳...
  3. 傅里叶变换 【完整版】
  4. 牛客小白月赛9 A签到(乘法逆元)
  5. Spark面试术语总结
  6. Effective C++读书笔记05
  7. Win10提示文件或目录损坏怎么解决?
  8. endless admin_认识Endless OS,轻量级Linux发行版
  9. 最全GNS3使用教程
  10. EXCEL内容很少文件却很大---如何变小
  11. left join on左连接的使用
  12. 《无人机通信与导航技术》札记
  13. 《算竞(紫书)》笔记1 STL入门
  14. dede 取消推荐文章加粗
  15. 一. spring cloud gateway集成 spring cloud stream binder kafka,实现“动态路由“刷新与加载之采坑记录
  16. 彻底解决“整个网络”的怪病
  17. 软件项目管理指南:定义、5大过程、估算及进度管理方法等
  18. 成年期人类大脑功能网络的重叠模块组织
  19. 长春师范大学计算机学院宿舍,长春师范大学宿舍条件,宿舍环境图片(10篇)
  20. [IPC] 共享内存——分析和使用

热门文章

  1. STL之multiset中equal_range,multimap中的equal_range,bitset容器,string字符串操作,lambda表达式
  2. 15-DBUtils
  3. Kettle使用_3变量替换之获取系统信息与命名参数
  4. 阿里云 docker php mysql_PHP开发环境02 - 阿里云Ubuntu使用Docker配置PHP环境(只限于学习)...
  5. 如何查询oracle死锁,Oracle死锁查看和解决办法汇总
  6. lamber表达式sql_lambda表达式转换sql
  7. 《深入浅出玩转FPGA》笔记
  8. Qt Creator的下载和安装
  9. 修改记录功能--jsp,servlet
  10. golang的一个简单小爬虫demo学习记录