• 连接并同步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

      

  • 相关阅读:
    将make的输出重定向到文件
    ubuntu mount u盘以及cp拷贝文件夹
    Emacs Tutorial摘录
    c#实现每隔一段时间执行代码(多线程)
    socket.BeginReceiveFrom异步接收信息时,回调函数无法正常进入
    23个C#实用技巧
    C#中实现Form的透明属性变化即渐隐效果
    C#键位定制:设置一个文本框只能输入数字键
    byte 与 bit 的转换
    C# Socket UDP 案例 2
  • 原文地址:https://www.cnblogs.com/bettersky/p/9215653.html
Copyright © 2020-2023  润新知