连接并同步windows下的git仓库

1. 需求

  电脑A和电脑B本来通过服务器同步工作目录。服务器时linux系统上有个裸仓库,不管在A上还是B上工作,工作完毕后使用git go与服务器仓库同步。A和B都是windows系统,在工作目录下有个git残酷,里面的config文件里与远程连接的命令类似“url = ssh://user@111.111.111.111:22/home/user/gitlib/ww.git” 。由于在windows上我们只运行git命令与服务器交互,所以无需windows上有ssh服务进程。

  现在,由于服务器出问题,想通过u盘进行同步。  当然,同步过程还是使用git。初步打算是在windows上安装ssh服务,然后,把u盘的路径写到上面的url里面。

 

2.  首先尝试了在windows 10下使用linux子系统,方法

    (1)在控制面板-》添加/删除程序-》开启/关闭特性里选中linux 子系统,重启。然后在应用商店里搜索ubuntu安装

    (2) 运行ubuntu,等会安装成功后,设置用户名和密码。使用sudo passwd设置root的密码。

  使用这种方式相当于在使用linux,win的盘默认被挂载在/mnt下,我们应该也可以挂在u盘。

    使用这种方式每次需要打开linux子系统。

 

3. 我们只想使用ssh服务。win10自带有openssh。在设置-》应用-》应用和功能-》管理应用和功能-》添加功能里添加openssh服务端,然后安装。安装后,在服务里设置将其启动并设置为自动启动。

  然后,就可以使用xshell登陆进本机了。用户名和密码就是windows的用户名和密码。要注意如果win用户没有设置密码,应该先设置密码才能ssh登陆。

 

登陆进去后,默认是类似cmd的命令行,收入bash回车就进入linux的命令行了,可以输入一般的linux shell命令了。使用mount可以看到win的盘挂载在/mnt下。

 

突然发现,虽然是用win的用户登陆进去的,但是运行了bash后,就是上面第2步中所设置的linux用户了,root密码也是那里设置的。所以看来启用linux子系统也是必要的。

 

4. 突然发现,直接把url设置为本机路径就可以实现我们的目的。

      url = D:/xxx/tx

 

要点:

(1) 假设我们的工作目录是D:/xxx/t1,这里面有个正常的仓库。现在我们要通过D:/xxx/tx来同步。那么我们首先需要从t1克隆一个裸仓库。进入D:/xxx, 运行 git clone --bare D:/xxx/t1 tx

        注意,如果不是裸仓库,则无法push成功。

 

 

5. 总结

    (1)在A电脑进入 u盘(E) ,将工作仓库克隆为一个裸仓库到u盘

    (2)在B电脑插入u盘,路径设置为u盘,进行git pull

    (3) 后面两个电脑都设置好路径,直接进行git go

 

 

 

  

posted on 2018-06-22 22:12  longbigfish  阅读(222)  评论(0编辑  收藏  举报

导航