V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pretty66
V2EX  ›  程序员

各种项目的代码比较多,经常还要切换电脑写代码,各位大佬有什么好的方案吗

  •  
  •   pretty66 · 2023-05-12 11:27:04 +08:00 · 8192 次点击
    这是一个创建于 566 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    手里有很多项目的代码(大概几十 G ),其中有些项目隔三差五可能就要做点稍微的小改动;比较难受的情况是在家会用台式机编程,出差用笔记本操作 这样多台代设备码不同步(目前是用 git 每次拉取),感觉很不方便!

    需求

    有没有一种方法可以实现把云端的硬盘挂载到本地电脑,本地电脑写代码时无感自动同步到云端。这样不管是用哪台设备编程直接挂载下硬盘就行了 目前看到有些技术可以实现云盘挂载到本地:CloudDrive 、Alist 等等,暂时还没尝试,不太明白这些适不适合我的需求。

    特来问问有没有大佬和我有一样的需求,你是咋解决的,使用感受咋样

    ps: 不想使用移动硬盘,怕丢怕坏

    85 条回复    2023-05-16 19:46:05 +08:00
    Mandyer
        1
    Mandyer  
       2023-05-12 11:36:14 +08:00   ❤️ 1
    不就是云编程吗,服务器搭一套环境,多设备同时开发。但貌似没推广开。
    litchinn
        2
    litchinn  
       2023-05-12 11:37:47 +08:00   ❤️ 16
    你用 git 为啥会代码不同步呢
    yinmin
        3
    yinmin  
       2023-05-12 11:39:14 +08:00
    onedrive 多设备文件同步 + git 用来做备份
    lujiaosama
        4
    lujiaosama  
       2023-05-12 11:44:11 +08:00
    自己搭个服务器, SSH 到服务器编程.
    pretty66
        5
    pretty66  
    OP
       2023-05-12 11:45:17 +08:00
    @Mandyer 这样没办法使用本地 ide 很不方便,尝试过买台服务器搭建 code server 不太好用
    ConfusedBiscuit
        6
    ConfusedBiscuit  
       2023-05-12 11:48:08 +08:00
    1. 省事方案,笔记本直接连家里台式机远程桌面,不但不用同步代码,还能享受台式机性能
    2. 专门搞个开发机,vscode remote 或 JetBrains Gateway 远程连接

    个人不太看好 ondrive 等云同步方案,因为云同步在后台运行的时候你可能不会关注同步进度,如果还没同步完就关机了……还有,这种双向同步的方案容易冲突,git 冲突了还能提醒你 merge ,云同步的话……
    ConfusedBiscuit
        7
    ConfusedBiscuit  
       2023-05-12 11:49:12 +08:00
    再补充一个方案
    3. 专门搞个开发机,vnc 或 rdp 远程桌面上去也行
    pretty66
        8
    pretty66  
    OP
       2023-05-12 11:56:48 +08:00
    @ConfusedBiscuit 感谢建议,同样比较担心 ondrive 这种使用体验,远程桌面这个也试过对带宽要求有点高 网络不好的话卡顿,第 2 点:搭建过服务器上面装 code server (浏览器操作编程的感觉不太方便),vscode remote 或 JetBrains Gateway 这俩没试过 不知道体验咋样,你有没有体验过使用方便吗
    pretty66
        9
    pretty66  
    OP
       2023-05-12 11:57:52 +08:00
    @yinmin onedrive 使用这个同步的速度快吗,会经常出现文件冲突啥的不
    siweipancc
        10
    siweipancc  
       2023-05-12 12:15:41 +08:00 via iPhone
    git 可以满足的,要不远程 IDE 吧,vs 跟 idea 都有现成的方案
    dreamramon
        11
    dreamramon  
       2023-05-12 12:17:51 +08:00
    github codespace 就是姐姐这个问题的。。。
    dearmymy
        12
    dearmymy  
       2023-05-12 12:20:44 +08:00
    用 parsec 笔记本远程连家里台式,如果怕网络不好,买个国内云做中转租内网,tailscale 或者 zeortier 都行。我就这样子 ,除非你网特别烂,基本去全国旅馆网络都是够的。
    wshhfy
        13
    wshhfy  
       2023-05-12 12:24:32 +08:00 via Android
    公司网络不好吗?我一直 frp 连公司,体验很好
    uni
        14
    uni  
       2023-05-12 12:26:38 +08:00
    vscode remote 好用的
    DingJZ
        15
    DingJZ  
       2023-05-12 12:28:15 +08:00
    用 git 不方便的点是什么,我自己目前也类似,公司所有项目没事就看看改改,家里公司电脑来回切换,没什么感觉
    brader
        16
    brader  
       2023-05-12 12:28:43 +08:00
    我宿舍有台式,简易搭了环境,但是不全,回老家有笔记本,也是同样的状况。下班后公司找我的概率不高。
    我在公司电脑装了 frp 内网穿透,在家喊我搞什么的话,我就直接远程桌面连公司电脑干活,体验还不错,够流畅,又能用上公司电脑
    xqmeng
        17
    xqmeng  
       2023-05-12 12:33:14 +08:00
    我是专门一台开发机器,配置好内网穿透和 code-server ,随时随地浏览器开搞。
    dayeye2006199
        18
    dayeye2006199  
       2023-05-12 12:53:57 +08:00 via Android
    vs code remote 稳如老狗。已经这么工作三年了
    pretty66
        19
    pretty66  
    OP
       2023-05-12 12:58:27 +08:00
    @dearmymy 有时候连接手机热点开发,远程桌面总感觉不舒服😔
    pretty66
        20
    pretty66  
    OP
       2023-05-12 12:59:07 +08:00
    @uni
    @dayeye2006199
    多谢建议,我试试看
    ConfusedBiscuit
        21
    ConfusedBiscuit  
       2023-05-12 13:18:17 +08:00
    @pretty66 我记得 code server 的问题是许多插件用不了,vscode remote 我长期用过,我用到的插件都兼容,所以还是挺好用的。JetBrains Gateway 我没用过,有同事一直在用,据说没有 vscode remote 稳定,但是 JetBrains IDE 的功能上的优势还是很有吸引力的
    chesha1
        22
    chesha1  
       2023-05-12 13:25:21 +08:00
    onedrive 的同步体验挺好的,只要你不是每次改好几个 G 还是能无感同步的
    就是不知道 onedrive 家庭版的体验如何,可能国内速度堪忧,商业版同步速度是很快的
    pretty66
        23
    pretty66  
    OP
       2023-05-12 13:29:50 +08:00
    @ConfusedBiscuit
    @chesha1
    好的,多谢
    DeltaC
        24
    DeltaC  
       2023-05-12 13:31:55 +08:00
    code server 插件用的是 open-vsx ,而不是 ms-vscode 的插件库,前者是后者的开源版本,且有些插件没有(比如微软的 C/C++)。而且在浏览器里,有些快捷键用不了,我感觉没那么好用。

    还是 vscode remote 吧。
    yjxjn
        25
    yjxjn  
       2023-05-12 13:39:14 +08:00
    @DingJZ 我也很好奇,两台电脑,只是刚开始配置麻烦点,没啥其他问题,git 不就解决这类问题么。。。。
    除非就是在单位写完了没及时 commit 和 push 呗。。。。再就是买 WVD ,云电脑这类了。
    dearmymy
        26
    dearmymy  
       2023-05-12 13:54:02 +08:00
    @pretty66 parsec 很丝滑的。我 macbook 连家里打 老头环都没问题
    opengps
        27
    opengps  
       2023-05-12 13:58:28 +08:00
    远程桌面到固定的一台电脑上去操作
    taotaodaddy
        28
    taotaodaddy  
       2023-05-12 14:06:05 +08:00   ❤️ 1
    所有项目的开发环境部署到 Linux 服务器上,然后多设备 vscode remote.
    CodeAllen
        29
    CodeAllen  
       2023-05-12 14:46:35 +08:00
    我是在公司放台式机,随身带 mac ,在家在外需要支持公司项目的话连公司 VPN ,然后直接 RDP 远程就行了,安卓平板也可以临时顶一下,很方便
    knva
        30
    knva  
       2023-05-12 14:52:33 +08:00
    还是 RDP 把。
    yinmin
        31
    yinmin  
       2023-05-12 14:57:39 +08:00
    @pretty66 onedrive 同步用了大半年了,稳定性好,不用梯子速度还可以的,如果有高速梯子同步超快。但毕竟 onedrive 同步延时会有冲突,我不会在 2 个设备上同时用一个项目的,至少间隔 15 分钟以上。
    yinmin
        32
    yinmin  
       2023-05-12 15:02:27 +08:00
    还有 1 个方案是 RDP 套 KCP 协议,在咖啡厅、酒店这种烂 WIFI 环境下,有 KCP 加持 RDP 也是很流畅的。
    lerry
        33
    lerry  
       2023-05-12 15:09:59 +08:00
    还是用 git 吧,同步盘搞一次冲突就头大了
    binge921
        34
    binge921  
       2023-05-12 15:13:37 +08:00
    我苹果全生态 公司出差用 mac 家里黑苹果台式机 总花费也就 1 万出头 依靠 icloud 方案同步 文件 ,代码有自己的 git 仓库 所以 同步编程目前来看非常舒适
    pretty66
        35
    pretty66  
    OP
       2023-05-12 15:13:38 +08:00
    @yinmin 套 kcp 这个有现成的软件吗,需要自己开发不
    pretty66
        36
    pretty66  
    OP
       2023-05-12 15:15:59 +08:00
    @binge921 我一台 mac 两台 win 一台 linux ,这个方案估计整不了😭
    zzzmh
        37
    zzzmh  
       2023-05-12 15:16:33 +08:00
    我能想到的
    第一选择是继续用 git ,git 一定比其他那些省心多了
    第二选择是出门不写代码,都已经这么累了,代码回家再写,不接受反驳(doge)
    yinmin
        38
    yinmin  
       2023-05-12 15:34:20 +08:00
    @pretty66 kcp 有 2 个现成方案:gost 和 frp ,均支持 win/mac/linux 。配置时,要设超长密码防爆破。
    limaofeng
        39
    limaofeng  
       2023-05-12 15:39:02 +08:00
    vscode remote + frp 内网穿透 任何位置,不同设备都可以修改同一份代码。我现在就是这么干的。不用担心移动设备资源限制,不用害怕 git 忘了提交代码。但主力服务器得一直处于开机状态
    tony1890
        40
    tony1890  
       2023-05-12 15:41:30 +08:00
    code-server 容易断连。不过我用的香港服务器,断连很正常。
    vscode-remote 只尝试过。
    webdav 和 远程桌面……没试过。这两个比较耗带宽。要用估计也得开按流量付费,带宽拉满。

    我觉得比较可行的就是 code-server 和 vscode-remote ,前提是国内服务器。
    limaofeng
        41
    limaofeng  
       2023-05-12 16:06:58 +08:00
    家里台式机 + frp + 腾讯云内网穿透,公司 vscode-remote ssh 连接稳得一批, 都感觉不到延迟。 加上 vscode remote 也支持插件,还有内网端口映射,启动一些服务后,可以方便的映射到当前设备的端口上。和本地区别真不大了
    anson0370
        42
    anson0370  
       2023-05-12 16:46:36 +08:00
    我也很好奇 OP 觉得用 git 每次拉取很不方便的具体原因是什么?如果愿意展开说说也许大家有别的建议可以给你。
    tiredtom
        43
    tiredtom  
       2023-05-12 17:01:45 +08:00
    分给别人做嘛
    mandex
        44
    mandex  
       2023-05-12 17:04:32 +08:00
    建议升级一下笔记本,在家和出门都用笔记本。
    limaofeng
        45
    limaofeng  
       2023-05-12 17:06:21 +08:00
    @anson0370 一个人在多设备间使用 Git 可能会遇到这几个问题:

    仓库太大,每次拉取都需要花费很长时间;
    在不同的设备上使用 Git 时,需要安装必要的运行环境;
    有时候由于赶时间,会忘记提交代码;
    如果有很多设备并且未提交代码,那么下次可能会忘记哪些代码在哪个设备上
    pretty66
        46
    pretty66  
    OP
       2023-05-12 17:12:15 +08:00
    @litchinn
    @DingJZ
    @anson0370
    @yjxjn

    设备比较多,开发加测试的常用机器大概有 4 台,测试的机器经常也要拉项目,git 拉来拉去挺麻烦 例如这边写了个小功能要到 win 上跑测试,就得临时提交 然后到 win 上拉去,费时间;就想着能有一块公共的盘在各个设备上挂载下就有最新的代码 这样就方便了,git 只做版本控制和备份
    pretty66
        47
    pretty66  
    OP
       2023-05-12 17:21:52 +08:00
    @limaofeng 你是明白的 就是费时间
    jswh
        48
    jswh  
       2023-05-12 17:22:49 +08:00
    我是 tailscale 把机器组网,然后用 vscode remote 开发。需要 GUI 的部分就 remote desktop 或者 parsec 上去看。如果 UDP 打洞成功一般很流畅,打洞不成的的就从自己建的 tailscale derper 走流量转发也还行。
    leonshaw
        49
    leonshaw  
       2023-05-12 17:31:03 +08:00
    要不试试 nfs, ceph 之类的
    hzzhzzdogee
        50
    hzzhzzdogee  
       2023-05-12 17:42:55 +08:00
    github codespace

    gitpod
    专门的产品做这个事
    lxh89910329
        51
    lxh89910329  
       2023-05-12 18:04:14 +08:00
    b 站有个 up 做了个自动切换人和电脑位置的椅子,哈哈
    silentsky
        52
    silentsky  
       2023-05-12 18:27:24 +08:00 via Android
    git 其实已经够用了 我写 java 的 上百个工程都放在 eclipse 都没压力 一键 pull 很难吗 也就几秒钟时间
    pretty66
        53
    pretty66  
    OP
       2023-05-12 18:32:04 +08:00
    wangsyi13
        54
    wangsyi13  
       2023-05-12 18:34:27 +08:00
    以前我场景跟你一样,又不想什么都放 git ,用的 resilio sync ,无感同步,没有遇到什么问题,同类型的 syncthing 啥的应该都能满足,像极空间的文件同步就是用的这方案
    xiaoz
        55
    xiaoz  
       2023-05-12 19:09:40 +08:00 via Android
    我是集中一台机器搭建开发环境,然后 vscode 远程开发,换电脑也不担心了,环境都不用重复搭建。有个 vscode 就行。
    Norths
        56
    Norths  
       2023-05-12 19:20:18 +08:00 via Android
    目前使用群晖的 Drive Client ,用了快半年暂时没出现问题。小的未完成的改动就用 Drive Client 同步,本地的更改会同步到 NAS ,到了另一台电脑又会同步下来,大的已经完成的功能就提交到 Git 。
    wuyiccc
        57
    wuyiccc  
       2023-05-12 19:36:19 +08:00
    jetbrains gataway 不太行 bug 过多
    hauzerlee
        58
    hauzerlee  
       2023-05-12 20:46:38 +08:00
    vscode remote 吧,经常用来浏览代码时这样的方式。我自己是用了 20 多年 vim ,也有很多插件应对各种语言。之前是在各种云平台上申请了虚拟机,一年也不贵,登陆上去可以 vim 编辑代码,可以用 tmux 或 screen 让工作区持续,再次登录时连上就可以继续。或者 vscode remote ,编译的话可以放到半夜执行,第二天上午差不多也就好了。
    hauzerlee
        59
    hauzerlee  
       2023-05-12 20:52:08 +08:00
    我想说的主要是云主机的方式吧……刚才扯远了到 IDE 上去了。
    pretty66
        60
    pretty66  
    OP
       2023-05-12 21:07:31 +08:00
    @hauzerlee vscode 用不惯,习惯使用 jetbrain ;如果真没啥好方法 要考虑换编辑器😂
    pretty66
        61
    pretty66  
    OP
       2023-05-12 21:10:20 +08:00
    @xiaoz 目前用 vscode 还不习惯,还是喜欢用 jetbrains 系列,目前建议好多都是 vscode 相关的,尝试下能不能适应 vscode 吧😄
    pretty66
        62
    pretty66  
    OP
       2023-05-12 21:13:16 +08:00
    @wangsyi13
    @Norths
    感谢建议,我尝试一下
    r00t7
        63
    r00t7  
       2023-05-12 22:49:07 +08:00
    code-server 可以试试 很方便
    w3cll
        64
    w3cll  
       2023-05-12 22:59:29 +08:00
    @pretty66 jetbrains 家的也有同类产品,Fleet 了解下?
    xiaoz
        65
    xiaoz  
       2023-05-12 23:21:37 +08:00 via Android
    @pretty66 我和你相反,之前我用开源项目申请到了 jb 全家桶,非常不习惯,用了几次换回 vscode 了,远程开发真的香。
    sunrisewestern
        66
    sunrisewestern  
       2023-05-13 02:44:54 +08:00
    vscode remote
    jim9606
        67
    jim9606  
       2023-05-13 03:08:00 +08:00
    onedrive 同步不会比 git pull --autostash 更好,至少后者有更好的一致性检查和冲突解决方法,前者很多操作都黑箱化了不好控制。
    如果你是因为工作区是多仓库组合,你可以考虑用 repo 来管理,或者针对 checkout/pull 等操作写一下脚本。

    远程桌面也是一种方法,就是看你接不接受那个流畅度了。
    bytesfold
        68
    bytesfold  
       2023-05-13 06:14:01 +08:00 via iPhone
    没人说 wireguard ?昨天已经把公司内网和家里内网打通了,直接访问家里内网网段所有设备。

    在家 vscode remote 公司 pc ,查看公司项目
    geekzhu
        69
    geekzhu  
       2023-05-13 07:21:52 +08:00
    dropbox 也是一个选择
    bjzhush
        70
    bjzhush  
       2023-05-13 09:57:14 +08:00
    建议用 dropbox 来同步
    dropbox 对海量小文件的同步是做了非常专业的优化的,包括大文件的增量变化,比如我 10G 的微信备份文件再次备份增加 200M 之后可以几秒内同步完成
    我用 dropbox 管理超过 10W+文件,同步从来没出过问题
    VS 的远程开发还可以,但是跨局域网速度和稳定性依然不好说
    chrosing
        71
    chrosing  
       2023-05-13 10:14:24 +08:00
    好奇的问下, 如果家里网络环境不好(深圳出租房一栋楼共用一条宽带) 这种的情况下 SSH 或者 RDP 以及 code remote 回去。真的能够体验到“本地”编程的流畅感么?
    ufo5260987423
        72
    ufo5260987423  
       2023-05-13 10:20:32 +08:00
    如果 git 都会有问题,那所有的“同步”的方案都比不上它。因为 git 有问题本质上是你的提交习惯跟不上你的需求。你更代码不够及时,这样。

    远程的话,到不同设备上还得配置一套远程方案,除非是专属于你的设备,否则也不方便。

    这样比起来,弄一台性能可以(不是打游戏!)的笔记本是合适的。CPU 主频高,内存够大,硬盘可靠,键盘舒适——搞定
    CFM880
        73
    CFM880  
       2023-05-13 10:25:54 +08:00 via Android
    repo 解君愁
    libook
        74
    libook  
       2023-05-13 10:41:26 +08:00
    写个定时任务,自动搜索 git 项目,自动 push 和 pull 。我还真就曾经使用 git 来粗暴模拟网盘同步功能,就是自动 push 和 pull 。

    对我来说,git pull 就一条命令的事情,不管是 IDEA 还是 VSCode 都可以一个快捷键完成,没感觉不方便。
    mysalt
        75
    mysalt  
       2023-05-13 10:52:08 +08:00
    家里搞个 Linux 开发机器,用 frp 内网穿透(可能需要买台云服务器),开发环境用 vscode remote ,基本满足所有的开发需求。要是再在家里搞个软路由,约等于这台开发机放在全球各地了,连各种网络代理问题都给你解决了。
    FrankAdler
        76
    FrankAdler  
       2023-05-13 11:17:46 +08:00 via iPhone
    这么多年了,jetbrains 的远程开发还是不行,vscode remote 其实挺好用的
    sarices
        77
    sarices  
       2023-05-13 12:01:52 +08:00
    直接用笔记本就好了啊,台式机淘汰
    keppelfei
        78
    keppelfei  
       2023-05-13 12:15:23 +08:00
    几十 G 的代码得是多大的项目呀?是有依赖么?
    如果用远程 ide 体验不是很棒,我想到如果排除依赖,最好的办法还是私服 git 和 repo 。
    Helsing
        79
    Helsing  
       2023-05-13 12:19:12 +08:00 via iPhone
    搞一台 server 或者 git 最靠谱

    其他云同步一不小心冲突了就 gg 了
    Ocean810975
        80
    Ocean810975  
       2023-05-13 12:19:30 +08:00
    试试这个? vscode 官方的的 codeserve ,https://code.visualstudio.com/docs/remote/vscode-server ,话说不用本地 ide 用浏览器差很多吗?
    lisxour
        81
    lisxour  
       2023-05-13 17:18:58 +08:00
    你用网盘的方案,我只能说以后你只会面对无穷无尽的冲突
    shiy05
        82
    shiy05  
       2023-05-13 17:57:19 +08:00 via Android
    我用 snycthing
    pretty66
        83
    pretty66  
    OP
       2023-05-13 22:50:52 +08:00
    @lisxour 听了这么多大佬的建议,目前选择的方案是 vscode-remote 模式先试试
    n18255447846
        84
    n18255447846  
       2023-05-14 16:13:17 +08:00
    内网穿透到台式机上,然后 vscode remote 开搞
    hauzerlee
        85
    hauzerlee  
       2023-05-16 19:46:05 +08:00
    @pretty66 #60 我最习惯的其实是 vim ,配合 linux 命令行界面的一些工具( screen 、tmux 这些虚拟终端软件)和插件,大部分时候只要有台能上网的电脑,就能很容易地恢复工作界面。jetbrain 用得少,我工作比较久了,这些 IDE 是后来出来的,一直就没去习惯它们了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 20:33 · PVG 04:33 · LAX 12:33 · JFK 15:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.