zoukankan      html  css  js  c++  java
  • VScode sftp插件使用【文件修改,重命名,删除均可自动同步】

    先说目前已探明的功能,以及不能做到的事情

    YES:

    1. local 文件修改 自动/手动 推到remote

    2. local文件重命名和删除 自动推到remote

    3. 远端修改了文件,可以sync到本地

    NO:

    远端删除了一个文件是不能sync到本地的,至少我通过执行sync Remote --> local没有任何变化

    (如果谁能请告诉我咋弄,感激不尽)

    下面结合具体使用场景说一下这个工具怎么用

    首先,代码啥的肯定都是在远程服务器上的,本想通过映射到本地驱动器来搞的,以前就是这么干的,最近不知为何网速不稳定,经常一卡一卡的

    严重影响体验和工作效率,因此这才转向于sftp插件的帮助。

    step1. 本地建立一个目录,用来存放远端服务器上的代码的副本,后面就基于这些副本在本地改动,然后把改动sync到远端

    step2. 下载好插件后,ctrl+shift+P调出命令栏,输入sftp:config, 这个时候蹦出一个sftp.json配置文件

    配置文件是最重要的,建议直接按照下面给的例子来配

    这个例子算是能够比较好的满足我的需求了,它能处理以下需求:

    1.  uploadOnSave": true 表明本地的修改在ctrl + S后会自动同步到远端

    2.  "watcher": { "files": "GIT_EVERYDAY/*", "autoUpload": true, "autoDelete": true } 表明会监视/home/pi/GitPrac / GIT_EVERYDAY下面的所有文件的重命名和删除

    的改动,并自动同步到远端

    3. 可以管理两个目录的代码sync需求

    [
        {
            "name": "My Pi Server",
            "context": "GitPrac",
            "host": "192.168.43.88",
            "protocol": "sftp",
            "port": 22,
            "username": "pi",
            "password": "access",
            "remotePath": "/home/pi/GitPrac",
            "uploadOnSave": true,
            "watcher": {
                "files": "GIT_EVERYDAY/*",
                "autoUpload": true,
                "autoDelete": true
            }, 
            "ignore": [
                "**/.git/**"
            ]
        },
        {
            "name": "My Pi Server",
            "context": "libpal",
            "host": "192.168.43.88",
            "protocol": "sftp",
            "port": 22,
            "username": "pi",
            "password": "access",
            "remotePath": "/home/pi/Bridge",
            "uploadOnSave": false,
            "watcher": {
                "files": "*",
                "autoUpload": true,
                "autoDelete": true
            },
            "ignore": [
                "**/.git/**"
            ]
        }
    ]

    最后说一下使用规范,因为远端的删除操作貌似不能同步到本地,所以我一般这样操作来work around这个限制

    那就是,所有文件的修改工作均为单向的,即从local 推改动到remote,不在remote端进行任何文件的改动

    这样操作可以解决我在树莓派上的开发需求,但是还有一个场景。那就是我在家隔离办公,操作了local的改动到远端,然后到了公司

    我是通过网络驱动器映射到本地来干活的,也就是说我会直接在远端服务器上对文件进行改动,这样一来,我再次回到家后,远端可能存在的

    删除操作就无法同步过来了,因此,在上述场景下,需要回家后清掉本地的目录,从远端重新download对应的project,这样一来才可以保证同步。

  • 相关阅读:
    vmware虚拟机 安装
    js中设置元素class的三种方法小结
    HTML可编辑的select
    视图和表的区别和联系
    数据库之常用函数
    数据库之Group By用法
    数据库之存储过程
    数据库内外连接讲解
    ExtJs知识点概述
    SpringMVC 400 Bad Request 问题
  • 原文地址:https://www.cnblogs.com/Arnold-Zhang/p/12634847.html
Copyright © 2011-2022 走看看