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

大家如何同步多终端代码,以 idea 为例

  •  
  •   seanxx · 2021-08-04 14:56:14 +08:00 · 6766 次点击
    这是一个创建于 1212 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如说代码变更啥的,不 push 到远程分支的情况下,如何同步代码

    59 条回复    2021-08-10 22:48:36 +08:00
    Leonard
        1
    Leonard  
       2021-08-04 14:58:54 +08:00
    在同一个 iCloud Drive 里写?
    wellsc
        2
    wellsc  
       2021-08-04 14:59:58 +08:00   ❤️ 19
    为什么要给自己制造问题
    gitopen
        3
    gitopen  
       2021-08-04 15:05:34 +08:00
    我直接用 VS Code remote
    Cbdy
        4
    Cbdy  
       2021-08-04 15:06:13 +08:00 via Android
    push 到远程分支有什么问题吗?
    sutra
        5
    sutra  
       2021-08-04 15:06:56 +08:00
    iCloud Driver 和 git 合作时有点问题。
    Jooooooooo
        6
    Jooooooooo  
       2021-08-04 15:09:00 +08:00
    git 提供天然同步的功能为啥还要增加一个云来解决问题?
    Ariver
        7
    Ariver  
       2021-08-04 15:10:35 +08:00 via iPhone
    如果两台机器网络联通是可以直接 push 的
    Jface
        8
    Jface  
       2021-08-04 15:10:47 +08:00
    本地就坚果云, 远程就 git 吧, 想问问一般自己搭还是用 GitHub 或者 Gitee?
    clf
        9
    clf  
       2021-08-04 15:11:09 +08:00
    同步软件实现。比如 Syncthings 、Goodsync 等同步就行。
    Hstar
        10
    Hstar  
       2021-08-04 15:11:22 +08:00
    如果不让推公共 remote,自建一个私有 remote 推上去
    Kimen
        11
    Kimen  
       2021-08-04 15:17:25 +08:00   ❤️ 1
    你可以了解一下 Jetbrains 的 projector-docker 项目,可以在服务器上部署一套 web 版的 idea
    https://github.com/JetBrains/projector-docker
    Puteulanus
        12
    Puteulanus  
       2021-08-04 15:37:21 +08:00
    同事之间临时同步一下修改的话,有时候会打一个 patch 用 teams 发过去
    idea 的 apply patch from clipboard 挺好用的
    VZXXBACQ
        13
    VZXXBACQ  
       2021-08-04 15:55:15 +08:00
    mark,看看大家怎么解决,我没有

    @wellsc

    不算制造吧。

    比如开发机和测试机分离,比如最近经常遇到 WFH 的时段。
    Cielsky
        14
    Cielsky  
       2021-08-04 15:57:32 +08:00 via Android
    坚果云,onedrive,syncthing
    fengci
        15
    fengci  
       2021-08-04 16:15:24 +08:00
    jetbrains IDE 有个部署功能。 可以同步代码,本地改完实时同步。但我是用来测试环境开发用,不想用本地的环境的时候用的。
    libook
        16
    libook  
       2021-08-04 16:58:14 +08:00
    用 git 分支可以解决。

    不想用 git 可以回归 patch 方式,去搜一下用 diff 指令生成 patch 文件,然后用 patch 指令应用 patch 。
    smilenceX
        17
    smilenceX  
       2021-08-04 17:07:29 +08:00
    如果你只要不想同步到某个特定的 remote,git 可以支持多个 remote 的
    Vegetable
        18
    Vegetable  
       2021-08-04 17:10:53 +08:00   ❤️ 1
    git 明明就是解决这个问题的
    qwerthhusn
        19
    qwerthhusn  
       2021-08-04 17:12:44 +08:00   ❤️ 2
    玩转 git 的一个重要条件就是 多 remote 多 branch 玩的 6
    wellsc
        20
    wellsc  
       2021-08-04 17:22:58 +08:00
    @VZXXBACQ “开发机和测试机分离”用 git 难点在哪里
    shilianmlxg
        21
    shilianmlxg  
       2021-08-04 17:31:47 +08:00 via iPhone
    你需要一个 git gui 自动拉不香嘛
    CodeCodeStudy
        22
    CodeCodeStudy  
       2021-08-04 17:35:14 +08:00
    自己买台服务器,push 到自己的远程仓库就好了
    zmxnv123
        23
    zmxnv123  
       2021-08-04 19:10:00 +08:00 via iPhone
    mega
    EscYezi
        24
    EscYezi  
       2021-08-04 19:48:34 +08:00 via iPhone
    git bundle 打包带走
    ayase252
        25
    ayase252  
       2021-08-04 19:52:55 +08:00
    拉个自己的 branch 推上去不就是了
    lujiaosama
        26
    lujiaosama  
       2021-08-04 19:59:46 +08:00   ❤️ 3
    折腾到你最后你会发现还是 Git 好使. 其他的各种问题. 文件多了少了错了乱了, 尤其是云盘, 别问我怎么知道的.
    xingyue
        27
    xingyue  
       2021-08-04 20:21:48 +08:00 via Android
    @lujiaosama 请问通过 git 有没有小技巧。我目前是先无脑 commit -m only-for-sync,然后要合并到主干前用 rebase 去除无用的 commit 记录,最后 push -f 。虽然目的可以达到但是步骤略麻烦
    hfl1995
        28
    hfl1995  
       2021-08-04 21:04:07 +08:00
    你 push 到你自己的分支,没啥影响的。我们就是这样,同步代码就是自己建分支,然后 push 到服务端。
    Dragonphy
        29
    Dragonphy  
       2021-08-04 21:22:10 +08:00
    @Kimen #11 没法用中文
    akring
        30
    akring  
       2021-08-04 21:23:38 +08:00   ❤️ 1
    @Leonard 库克直呼内行,原来 iCloud 还能这么用
    Rheinmetal
        31
    Rheinmetal  
       2021-08-04 21:55:04 +08:00
    合并之前 杂乱的 squash 掉
    不要自找麻烦
    pengtdyd
        32
    pengtdyd  
       2021-08-05 01:42:25 +08:00
    自己玩死自己
    beginor
        33
    beginor  
       2021-08-05 07:14:23 +08:00 via Android
    貌似不能这样同步,装了三个 JB 的 IDE,Idea,Rider 和 PyCharm,分别写 Java,C# 和 Python, 本来还想装 DataGrip 和 WebStorm, 但是发现这两个的功能基本都在其它 IDE 里面包括了
    beginor
        34
    beginor  
       2021-08-05 07:15:20 +08:00 via Android
    @beginor 貌似回复错主题了,打扰各位了
    Maxxxxyu
        35
    Maxxxxyu  
       2021-08-05 08:49:48 +08:00
    你先 fork 一份到自己账户下,修改都在自己账户下做,确认没问题了再合到远程分支不就好了
    jorneyr
        36
    jorneyr  
       2021-08-05 09:23:21 +08:00
    Git 新建个分支随便糟蹋啊。
    cyrivlclth
        37
    cyrivlclth  
       2021-08-05 09:45:05 +08:00
    完全不懂开发机和测试机分离为什么会有这种情况,git 不是很好的解决了吗?
    hanssx
        38
    hanssx  
       2021-08-05 10:12:16 +08:00
    onedrive 同步,用 insync 客户端(可以设置忽略.git 文件夹同步,支持三平台),只在一台电脑做 git 操作即可,目前在用没发现什么问题。
    mrgeneral
        39
    mrgeneral  
       2021-08-05 10:24:50 +08:00
    JetBrains 的 IDEA 有一个功能 code with me,可以远程同步
    DT27
        40
    DT27  
       2021-08-05 11:23:16 +08:00
    坚果云。
    HuangLibo
        41
    HuangLibo  
       2021-08-05 13:00:51 +08:00
    - 有人说要用 git,那你将面临一个问题:每次离开工位回去的时候,都要 push 一下,忘了 push 就凉凉。
    - 有人说用 iCloud Driver,这个我用过,同步大量小文件的时候,同步效率堪忧。
    - 我现在用的 Dropbox,其同步性能比 iCloud Driver 好不少。另外,.git 目录也不用忽略,多台机器上都能 push,操作完成后,其他机器都能同步到最新内容,包括 git 状态。这样的好处是随时离开工位,不用惦记着先 push 一下,非常省心。唯一存在的问题有两个:1. 需要有一个靠谱的 ss 梯子; 2. 有时候 .git 目录中会出现冲突文件,需要手解,不过影响也不大。
    HuangLibo
        42
    HuangLibo  
       2021-08-05 13:04:35 +08:00
    @HuangLibo 补充,目前我写 blog 就是用的 Dropbox 这个方案,已经用了几个月了,很稳。有兴趣可以看看:github.com/Huang-Libo/Huang-Libo.github.io
    ch2
        43
    ch2  
       2021-08-05 13:23:53 +08:00
    养成 push 的习惯
    back0893
        44
    back0893  
       2021-08-05 13:28:16 +08:00
    git 不好么..
    comoyi
        45
    comoyi  
       2021-08-05 13:30:21 +08:00
    1.随身带 U 盘,代码存到 U 盘里。
    comoyi
        46
    comoyi  
       2021-08-05 13:31:23 +08:00
    2.代码和编辑器装远程服务器,VNC 连接
    id4alex
        47
    id4alex  
       2021-08-05 13:35:56 +08:00
    通过 webdav 挂载 nas 到本地 drive. 最轻松的解决方案.
    harde
        48
    harde  
       2021-08-05 13:43:31 +08:00
    笔记本电脑。

    --


    这个问题的产生,应该是多地办公产生的。所以我觉得,在没有必要 Commit 、Push 之前,同步代码是个伪需求。
    多数情况下,公司的代码是不允许拿回家的,即使允许拿回家,除了代码,“数据库”你也打算同步?
    所以,要么直接带着笔记本多地跑,要么就 VPN 连入局域网,直接远程桌面工作。
    kchum
        49
    kchum  
       2021-08-05 13:54:38 +08:00
    @CodeCodeStudy #22 Github private repository 就行
    rpman
        50
    rpman  
       2021-08-05 15:13:49 +08:00
    IDE 的 ssh 功能,比如 VSCode remote SSH
    如果硬要分开环境,我个人是本地上架一个 git
    fds
        51
    fds  
       2021-08-05 15:16:16 +08:00
    keybase 可以建立个私有的 git 仓库。
    lanlanye
        52
    lanlanye  
       2021-08-05 16:30:11 +08:00
    各类同步盘……国内据说坚果云不错,或者自己整个 Nextcloud
    Mozuck
        53
    Mozuck  
       2021-08-05 18:14:22 +08:00
    onedrive 自动同步
    flniu
        54
    flniu  
       2021-08-06 11:19:22 +08:00
    @HuangLibo DevOps 规范推荐的就是小步提交、频繁提交。每天下班的时候,不是都应该 push 代码并通过 CI 吗?
    HuangLibo
        55
    HuangLibo  
       2021-08-06 11:40:19 +08:00
    @flniu 企业的项目当然要严格按规范来,也不会往云盘里放。但如果你自己维护三四个个人小仓库,中午回去、晚上回去,都 push 一下?代码都还没写完编译都通不过呢,就往 git 提交?
    flniu
        56
    flniu  
       2021-08-09 12:33:32 +08:00
    @HuangLibo 哪怕是比较小的个人项目,既然已经建了 Git 仓库,就充分利用版本控制的价值,没必要再重复发明一套轮子。
    理想情况下,一个开发任务经过合理拆解、分步,每个步骤的代码+测试基本可以在若干个番茄时间(或 1-2 小时)里完成(编译及自动化测试都通过)。当然有时候达不到理想情况。不适合往主线 push 时,可以往临时分支 push 。
    个人观点:不管是否同步多终端,代码积攒超过 1 天不提交,不是好的编程实践。(往往改丢了或想回退时才追悔莫及)
    HuangLibo
        57
    HuangLibo  
       2021-08-10 12:04:15 +08:00
    @flniu 别上纲上线被教条主义束缚了,写个几个小 demo,或者维护一个 jekyll 小博客,就没必要非得按 xx 步骤做,而是两台电脑可以静默同步,无论人是在公司还是在家里、啥时候想起来了就能打开看看,做点小修改。
    当然,每个人都有自己的生活习惯,如果你能在每次离开公司电脑前都能把 n 个仓库挨个 commit,并在回家的时候把这些仓库挨个 pull,也不是不行,你不嫌累就好。
    lujiaosama
        58
    lujiaosama  
       2021-08-10 17:01:38 +08:00
    @HuangLibo 为什么要挨个 commit. 写个脚本一键 pull ,一键 push, 一键 run. 愿意的甚至可以设个定时.
    HuangLibo
        59
    HuangLibo  
       2021-08-10 22:48:36 +08:00
    @lujiaosama 当我在家里已经开始收到同步的东西的时候,你还在焦急地等着你的定时器生效 ;-P
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5485 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 120ms · UTC 09:08 · PVG 17:08 · LAX 01:08 · JFK 04:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.