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

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

  •  
  •   seanxx · 78 天前 · 4084 次点击
    这是一个创建于 78 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    @wellsc

    不算制造吧。

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

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

    --


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