Windows→Linux,本地同步到服务器

适用背景:

用自己电脑修改代码,使用实验室/公司的服务器炼丹的朋友

优势:

本地 <--> 服务器,实时同步,省去文件传输的步骤

本地改 -> 自动同步到服务器 -> 服务器跑代码 -> 一键同步回本地(真一键,就右击按一下同步)

具体实现方式:

1. 安装SFTP插件

2. 打开本地的项目文件夹

3. ctrl + shift + p 打开搜索栏,输入sftp,打开SFTP: Config

4. 配置文件修改,实现自动同步

本地->远程,增删改移全自动,不限文件/夹文件。注意是 本地到远程 单向,反之 远程->本地 无法自动同步,需要手动download到本地。

当然远程文件都是只读的,你肯定是操作本地文件的,除了远程代码生成的新文件,这里是唯一需要手动download到本地的。

配置文件会生成在项目根目录/.vscode/sftp.json

完整的配置参数信息:Configuration · Natizyskunk/vscode-sftp Wiki (github.com)

注意:sftp.json文件会自动创建在项目的.vscode文件夹中,.vscode文件夹在哪个项目里面,该同步效果就对哪个项目生效,并不是全局的

以下配置参数为重中之重,实现全自动同步请照抄:

最重要的5项请一模一样:

{"...","watcher": {"files": "**/*","autoUpload": true,"autoDelete": true},"...","syncOption":{"delete": true},"...",
}"uploadOnSave": false, // set to false if watcher `autoUpload` is set to true & `files` is set to "**/*".

password:服务器密码,不写这个参数则每次都需要输入密码
privateKeyPath:本地端私钥绝对路径,用这个就可以不用password免密了,配置方法见VS code配置免密连接Linux服务器-CSDN博客

{"name": "My Server","host": "xxx.xxx.xx.xxx",        #你要连接的服务器的IP地址"protocol": "sftp",                 #也可以用ftp方式,sftp更安全"port": 22,                     #sftp,默认端口是22;ftp,默认端口是21"username": "xxx",                #远程服务器的名称"password": "xxx",                #远程服务器的用户登录密码"privateKeyPath": "c:/Users/xxx/.ssh/id_rsa""remotePath": "/home/xxx/project",   #本地项目要同步到远程电脑上的路径,必须是绝对路径"uploadOnSave": true,          #本地更新文件内容会自动同步到远程文件"downloadOnOpen":true,         #填true就行,打开远程文件时自动将其下载到本地"ignore": [".vscode"],                #忽略的文件/文件夹,不会被同步"watcher": {               #监视器(可以重命名文件和删除文件)"files": "**/*",          #监视项目根目录下所有文件是否更改。"autoUpload": true,         #本地有更新操作时,远程自动更新(增删改移)"autoDelete": true          #本地有删除操作时远程自动删除}
}

按照如上配置后,本地->远程 所有操作都是全自动同步。
    "downloadOnOpen": true 会自动同步(下载)打开的文件(本地端本身就有,但是远程端改写了内容的文件,即 远程->本地 的 “改” 通过该参数可以实现自动同步(需要打开该文件))
然后 远程->本地 的同步,比如远程跑代码生成的文件或者改动的文件(删除和移动操作不会同步),通过在本地目录空白处鼠标右键(或者在扩展设置键盘快捷键)——  Remote -> Local 或者 Download Folder


所以 远程端尽量不要做删除和移动文件的操作,如果在远程端移动或删除了文件,然后点同步了。如果是移动操作,那本地端原位置和新位置都会有这个文件(删除操作的话就是没变化,本地端原文件还在那里)

简单来说就是远程同步到本地只增不减,灰色为最终结果:
远程端
/home/xxx/a --移动--> /home/yyy/a本地端 /home/xxx/a + /home/yyy/a
远程端 /home/xxx/a --删除--> 本地端 /home/xxx/a


其实也不麻烦,只需要在本地端手动删除原位置的/home/xxx/a即可

下面其他配置参数,仅供参考:

{"name": "My Server","host": "xxx.xxx.xx.xxx",        #你要连接的服务器的IP地址"protocol": "sftp",                 #也可以用ftp方式,sftp更安全"port": 22,                     #sftp,默认端口是22;ftp,默认端口是21"username": "xxx",                #远程服务器的名称"password": "xxx",                #远程服务器的用户登录密码"remotePath": "/home/xxx/project",   #本地项目要同步到远程电脑上的路径,必须是绝对路径"uploadOnSave": true,          #本地更新文件保存会自动同步到远程文件(不会同步重命名文件和删除文件)"downloadOnOpen":false,         #填false就行,打开远程文件时自动将其下载到本地"watcher": {               #监视器(可以重命名文件和删除文件)"files": "**/*",            #监视项目根目录下所有文件是否更改。当然如果有需要你也可以把这里的值改成项目中某个文件或文件夹的相对路径,这样你的项目代码中只有你指定的文件或文件夹会被同步到远程"autoUpload": true,         #本地有更新操作时,远程自动更新(修改和重命名)"autoDelete": true,         #本地有删除操作时远程自动删除}
}
{"host": "远程服务器IP地址","port": 22,"username": "远程服务器登录名","password": "远程服务器密码","protocol": "sftp","agent": null,"privateKeyPath": null,"passphrase": null,"passive": false,"interactiveAuth": true,"remotePath": "远程服务器路径,如(/usr/local/...)","uploadOnSave": true,"syncMode": "update","ignore": ["**/.vscode/**","**/.git/**","**/.DS_Store"],"watcher": {"files": "**/*","autoUpload": true,"autoDelete": true}}

5. 手动同步(可跳过不看)

这里与Remote-SSH相反,SFTP不能直接修改远程文件,它的运作方式是本地修改自动同步到远程,远程修改手动下载到本地,可以单文件同步,也可以整个文件夹同步,非常灵活,免去文件传输。

远程目录和文件只用以下选项:

本地目录和文件只用以下选项:

tip1:本地同步文件夹到远程也是在远程目录右击,而不是本地文件夹右击

tip2:配置文件里面参数"uploadOnSave": true就不需要手动上传到远程了,只有第一次需要“Upload Folder”把整个文件夹上传过去

补充1:你在本地文件目录右键时或许会看到如下选项,你可以按需使用:

    sync both directions:将远程和本地的代码同步至二者一致(会提示哪边缺少文件)

    sync local -> remote : 远程同步到本地(只同步变化的地方,速度快)    

              sync remote -> local: 远程同步到本地(只同步变化的地方,速度快

    upload folder:远程文件夹同步到本地(不管有没有变化都会扫描整个文件夹,慢

    download folder:远程文件夹同步到本地(不管有没有变化都会扫描整个文件夹,慢

    这些选项,可以让你在比如本地代码误删、远程端添加了项目文件等情况下,从远程拷贝项目到本地

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/277786.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis】聊聊Redis常见数据类型底层结构

对于Redis来说&#xff0c;其实我们操作的数据类型就是String,List、Set、Zset、Hash&#xff0c;但是具体低层使用什么编码进行存储&#xff0c;在面试中是一个高频面试题&#xff0c;所以今天大概整理下对应的。 RedisObject与DictEntry 其实对于key来说一般都是String类型…

基础知识学习 -- qnx 系统

QNX是一个基于优先级抢占的系统。 这也导致其基本调度算法相对比较简单。因为不需要像别的通用操作系统考虑一些复杂的“公平性”&#xff0c;只需要保证“优先级最高的线程最优先得到 CPU”就可以了。 基本调度算法 调度算法&#xff0c;是基于优先级的。QNX的线程优先级&a…

Java学习笔记(15)

JDK7前时间相关类 Date时间类 Simpledateformat Format 格式化 Parse 解析 默认格式 指定格式 EE&#xff1a;表示周几 Parse&#xff1a;把字符串时间转成date对象 注意&#xff1a;创建对象的格式要和字符串的格式一样 Calendar日历类 不能创建对象 Getinstance 获取当…

PHP 生成图片

1.先确认是否有GD库 echo phpinfo(); // 创建一个真彩色图像 $image imagecreatetruecolor(120, 50);// 分配颜色 $bgColor imagecolorallocate($image, 255, 255, 255); // 白色背景 $textColor imagecolorallocate($image, 230, 230, 230); // 黑色文字// 填充背景 image…

代码算法训练营day10 | 232.用栈实现队列、225. 用队列实现栈

day10: 232.用栈实现队列225. 用队列实现栈 232.用栈实现队列 题目链接 状态&#xff1a; 文档&#xff1a;programmercarl.com 思路&#xff1a; 用栈实现队列。要先明白两者的区别。 栈&#xff1a;单开门&#xff0c;先进后出&#xff0c;只有一端能进出。 队列&#xff1a;…

论文解读之Attention-based Deep Multiple Instance Learning

前言 多实例学习是由监督学习演变而来的&#xff0c;我们都知道&#xff0c;监督学习在训练的时候是一个实例&#xff08;或者说一个样本、一条训练数据&#xff09;对应一个确定的标签。而多实例的特点就是&#xff0c;我们在训练的时候的输入是多个实例对应一个确定的标签&a…

国外visa卡怎么办理,可充ChatGPTPLUS、Claude、Midjourney

很多小伙都在使用ChatGPT&#xff0c;但是想充值ChatGPTPLUS缺需要国外的visa卡&#xff0c;拿自己的银联卡&#xff0c;尝试了好多次还是不行&#xff0c;其实用一张国外的visa卡几分钟就可以升级好 办理国外visa卡&#xff0c;点击获取 国外的visa卡&#xff0c;具体要看你…

HarmonyOS-鸿蒙系统概述

你了解鸿蒙系统吗&#xff1f; 你看好鸿蒙系统吗&#xff1f; 今年秋季即将推出的HarmonyOS Next 星河版热度空前&#xff0c;一起来了解一下吧。本文将从HarmonyOS 的应用场景、发展历程、架构、开发语言、开发工具、生态建设六个角度聊一聊个人的理解。 1、应用场景 鸿蒙…

Go——运算符,变量和常量,基本类型

一.运算符 Go语言内置的运算符有&#xff1a; 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 1.1 算术运算符 注意&#xff1a;(自增)和--(自减)在go语言中是单独的语句&#xff0c;并不是运算符。 1.2 关系运算符 1.3 逻辑运算符 1.4 位运算符 位运算符对整数在内存…

网络编程-套接字相关基础知识

1.1. Socket简介 套接字&#xff08;socket&#xff09;是一种通信机制&#xff0c;凭借这种机制&#xff0c; 客户端<->服务器 模型的通信方式既可以在本地设备上进行&#xff0c;也可以跨网络进行。 Socket英文原意是“孔”或者“插座”的意思&#xff0c;在网络编程…

TCP/UDP协议

TCP/UDP协议都工作在传输层 这两个协议的目标都是在程序之间传输数据&#xff08;可以是文本文件、图片、视频&#xff09;&#xff0c;对于TCP协议和UDP协议来说&#xff0c;都是一堆二进制数。 把人与人之间的通信看成是进程间通信&#xff0c;“写信”是基于非连接的UDP&a…

Leetcode刷题笔记——动态规划(背包问题)篇

Leetcode刷题笔记——动态规划&#xff08;背包问题&#xff09;篇 一、0-1 背包问题 0-1背包问题简介 有 n 件物品和一个最多能背重量为 w 的背包。第 i 件物品的重量是 weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包…

Unload-labs

function checkFile() {var file document.getElementsByName(upload_file)[0].value;if (file null || file "") {alert("请选择要上传的文件!");return false;}//定义允许上传的文件类型var allow_ext ".jpg|.png|.gif";//提取上传文件的类…

代码算法训练营day9 | 28. 实现 strStr() 、459.重复的子字符串

day9&#xff1a; 28. 实现 strStr()KMP的主要应用&#xff1a;什么是前缀表&#xff1a;前缀表是如何记录的&#xff1a; 如何计算前缀表&#xff1a;构造next数组&#xff1a;1、初始化2、处理前后缀不相同的情况3、处理前后缀相同的情况 代码&#xff1a; 459.重复的子字符串…

Mysql 索引、锁与MVCC等相关知识点

文章目录 Mysql锁的类型锁使用MVCC快照读和当前读读视图【Read View】串行化的解决 索引类型存储方式区分逻辑区分实际使用区分索引失效情况 索引建立规范SQL编写规范exlpain字段解析ACID的原理日志引擎慢SQL整合SpringBoot博客记录 Mysql锁的类型 MySQL中有哪些锁&#xff1a…

德人合科技 | 公司办公终端、电脑文件资料 \ 数据透明加密防泄密管理软件系统

天锐绿盾是一款全面的企业级数据安全解决方案&#xff0c;它专注于为企业办公终端、电脑文件资料提供数据透明加密防泄密管理。 首页 德人合科技——www.drhchina.com 这款软件系统的主要功能特点包括&#xff1a; 1. **透明加密技术**&#xff1a; 天锐绿盾采用了透明加密技…

HarmonyOS NEXT应用开发—Grid和List内拖拽交换子组件位置

介绍 本示例分别通过onItemDrop()和onDrop()回调&#xff0c;实现子组件在Grid和List中的子组件位置交换。 效果图预览 使用说明&#xff1a; 拖拽Grid中子组件&#xff0c;到目标Grid子组件位置&#xff0c;进行两者位置互换。拖拽List中子组件&#xff0c;到目标List子组件…

ChromeDriver 122 版本为例 国内下载地址及安装教程

ChromeDriver 国内下载地址 https://chromedriver.com/download 靠谱 千千万万别下载错了 先确认 Chrome 浏览器版本 以 win64 版本为例 那我们下载这一个啊&#xff0c;不要下载错了 下载地址贴在这哈 https://storage.googleapis.com/chrome-for-testing-public/122.0.…

HarmonyOS鸿蒙开发常用4种布局详细说明

介绍一下鸿蒙开发常用4种布局 1、线性布局 2、层叠布局 3、网格布局 4、列表布局 ​1. 线性布局&#xff08;Column/Row&#xff09; 线性布局&#xff08;LinearLayout&#xff09;是开发中最常用的布局&#xff0c;通过线性容器Row&#xff08;行&#xff09;和Column&…

SpringSecurity(SpringBoot2.X版本实现)

资料来源于 SpringSecurity框架教程-Spring SecurityJWT实现项目级前端分离认证授权 侵权删 目录 介绍 快速开始 认证 认证流程 登录校验流程 SpringSecurity完整流程 认证流程详解 代码实现 准备工作 mysql mybatis-plus redis 统一返回类 核心代码 密码加密存…