VScode sftp插件使用【文件修改,重命名,删除均可自动同步】

Wesley13
• 阅读 1695

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

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,这样一来才可以保证同步。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
3年前
Unity横屏
Android下发现Unity里面的Player设置,并不能完全有效,比如打开了自动旋转,启动的时候还是会横屏,修改XML添加以下代码<applicationandroid:icon"@drawable/ic\_launcher"                    android:label"@string/app\_name"
Wesley13 Wesley13
3年前
Java多线程导致的的一个事物性问题
业务场景我们现在有一个类似于文件上传的功能,各个子站点接受业务,业务上传文件,各个子站点的文件需要提交到总站点保存,文件是按批次提交到总站点的,也就是说,一个批次下面约有几百个文件。      考虑到白天提交这么多文件会影响到子站点其他系统带宽,我们将分站点的文件提交到总站点这个操作过程独立出来,放到晚上来做,具体时间是晚上7:00到早上7:00。
绣鸾 绣鸾
1年前
ForkLift 4文件管理和多协议传输工具「Mac」
是一个强大的文件管理工具,具有直观的界面和强大的功能。它提供了一个直观的界面,使用户能够轻松地管理他们的文件和目录,以及进行各种操作,如复制、移动、重命名、删除等。它还支持多种文件传输协议,如FTP、SFTP、WebDAV等,以及多种语言,可以轻松地满足不
绣鸾 绣鸾
1年前
ForkLift 4 for Mac(FTP与文件管理工具) v4.0.5
是一个强大的文件管理工具,具有直观的界面和强大的功能。它提供了一个直观的界面,使用户能够轻松地管理他们的文件和目录,以及进行各种操作,如复制、移动、重命名、删除等。它还支持多种文件传输协议,如FTP、SFTP、WebDAV等,以及多种语言,可以轻松地满足不