使用git仓库在多台pc中同步代码

需求:

有如下电脑:mac pro,home pc win7,office pc win10,要在它们之间方便的同步代码。
因为代码的安全性问题,不能将git仓库放到github等第三方仓库。所以考虑自建仓库。
因为现在没有购买云主机,所以暂时在笔记本上建立git仓库。

总的步骤:

  1. 建立仓库
  2. 使用ssh密钥进行git操作

建立仓库

首先在mac pro中建立仓库,这样home pc和mac pro都通过这个仓库来同步代码。如果office pc也想要使用这个仓库,可以通过我在bwg上的vps建立反向代理。

在mac pro上,使用下面的命令基于已经存在的工程(已经git init过)构建一个裸仓库
$ git clone --bare my_project my_project.git
把这个my_project.git放到一个喜欢的目录下,这个目录专门放各自仓库。例如 /data/local/app/rep/my_project.git。
在mac pro上,可以使用$ git remote add local /data/local/app/rep/my_project.git 将你的工程关联到这个仓库。

用ssh密钥进行git操作

开启mac pro的远程访问

要在home pc上访问mac pro的仓库,首先要开启mac pro的ssh远程访问权限。

查看ssh远程服务状态
sudo systemsetup -getremotelogin
如果已经开启的话,指令会显示“Remote Login: On”,反之就会显示“Remote Login: Off”
开启ssh服务:
sudo systemsetup -setremotelogin on
关闭ssh服务:
sudo systemsetup -setremotelogin off
或者按照下面步骤设置:

系统偏好设置->共享->勾选远程登录,设置运行登录的用户

以上设置完毕后,因为我在家里是局域网,在home pc上就可以使用git clone macuser@macip: /data/local/app/rep/my_project.git 来复制这个工程。此时会让你输入mac pro的用户密码,并且每次git操作都需要,这个时候就需要使用ssh密钥来进行没有密码的git操作。

创建和证书

ssh-keygen -t rsa -C "12345678@qq.com"
执行后生成两个文家,id_rsa.pub是公钥,另一个是私钥。
公钥放到服务端,私钥放到请求端。
在mac pro 的终端中,执行下面的命令把公钥追加到ssh服务端。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
把私钥复制到home pc中,放到一个喜欢的目录 C:\Users\Administrator\.ssh\id_rsa
C:\Users\Administrator\.ssh目录下新建一个config文件,添加下面配置(已有文件则追加下面配置):

Host 192.168.1.25 
HostName 192.168.1.25
PreferredAuthentications publickey
IdentityFile C:\Users\Administrator\.ssh\id_rsa
User macuser

192.168.1.25 为局域网下的mac pro 的ip,实测host和hostname都必须使用这个ip。最后一行是mac登录用户的账户名,就是mac pro终端中$符号前面的用户名。

至此,可以使用
ssh macuser@192.168.1.25来远程登录mac pro而不必输入密码。
也可以在你clone的工程目录下,使用git pull origin等命令来管理你的代码而不必输入密码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分:Git的基本操作 初始化操作 $ git config -global user.name #设置提交...
    庄欲以莘阅读 5,985评论 0 4
  • 本文为 Git教程的学习笔记,教程源自廖雪峰的博客。这是一个由浅入深,学完后能立刻上手的Git教程。另,附上另一本...
    七弦桐语阅读 11,375评论 5 47
  • 本文作者陈云峰,转载请注明。 这篇文章记录个人常用的一些命令,和记不住的一些命令,转载了并不断更新。 Git官网 ...
    陳云峰阅读 7,818评论 0 24
  • 我是这段时间才知道“造口”这两个字的含义,为什么我会知道这个词呢?原因是目前我正在体验“造口人”的生活。 6.29...
    Rellamelody阅读 6,542评论 0 3
  • 终于赶上进度啦,不知道老师赵老师愿不愿意收下我这枚学生。 我可是一下班就扑回来补作业噢…
    第三书库阅读 1,111评论 1 2