V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
mossrock
V2EX  ›  程序员

有大佬知道 idea 怎么对同一个项目同时打开不同分支的窗口

  •  
  •   mossrock · 2022-05-13 10:13:44 +08:00 · 7228 次点击
    这是一个创建于 960 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有时候代码上线日期不一样,但是后面开发的东西需要看看还没上线的代码,就很难受。

    不知道有没有大佬有办法,对于同一个项目,idea 中打开一个分支就打开一个新窗口。

    34 条回复    2022-05-15 11:49:30 +08:00
    crayygy
        1
    crayygy  
       2022-05-13 10:18:09 +08:00
    Annotation 或者 从 Git 那个 tab 下面找其他 branch 下面的 commit 的 diff
    xuanbg
        2
    xuanbg  
       2022-05-13 10:18:32 +08:00
    一般来说,看什么版本的代码就切什么分支或 tag 。比较代码就直接双击提交记录。同时看多个分支的代码,在同一台电脑上是不可能的任务。唯一的办法是多台电脑,每台一个分支就行了。
    xuanbg
        3
    xuanbg  
       2022-05-13 10:20:41 +08:00
    @crayygy diff 有局限性,只能显示相邻版本的差异。且不能看某个版本的完整代码。
    hzymyp
        4
    hzymyp  
       2022-05-13 10:22:25 +08:00 via Android   ❤️ 9
    本地 clone 多份
    fqy12300
        5
    fqy12300  
       2022-05-13 10:22:38 +08:00   ❤️ 1
    编辑器看旧代码,GitHub / Gitlab 看新代码?
    book1925
        6
    book1925  
       2022-05-13 10:24:29 +08:00
    我是土办法。。clone 一份然后 vscode 打开拖到副屏看。。。
    acoldfox
        7
    acoldfox  
       2022-05-13 10:26:29 +08:00   ❤️ 1
    好像做不到,除非克隆一个文件夹出来,可以试试官方建议的 git worktree
    janus77
        8
    janus77  
       2022-05-13 10:27:56 +08:00
    你切分支难道不是本地切吗?本地仓库不能同时处于好几个分支上啊,用无论什么 IDE 打开都是一个分支,怎么可能同时有 2 个分支。2 个分支都做不到,更别提 2 个窗口了
    mossrock
        9
    mossrock  
    OP
       2022-05-13 10:37:01 +08:00
    好吧,主要 diff 看的时候不那么灵活,看来就本地 clone 是最佳方案。。。就有时候要拆代码,commit 较多想直接复制下,切个分支就忘记写的什么了。
    taco1wang
        10
    taco1wang  
       2022-05-13 10:43:13 +08:00
    右键那个分支,可以 compare with other branch
    crayygy
        11
    crayygy  
       2022-05-13 10:46:20 +08:00
    如果只是为了 View 的话,没有网页工具能用么,GitHub/Gitlab 用来看代码做的也挺好的,也有插件可以支持跳转
    czyt
        12
    czyt  
       2022-05-13 10:51:08 +08:00
    直接 diff
    Veneris
        13
    Veneris  
       2022-05-13 10:53:08 +08:00
    和你 idea 没关系,你这个项目在 git 就只能处于一个分支,几个 idea 也是一样的
    Jooooooooo
        14
    Jooooooooo  
       2022-05-13 10:54:17 +08:00
    你 git 切完分支磁盘里的代码就变了, idea 也无能为力呀.
    ranNice
        15
    ranNice  
       2022-05-13 11:05:09 +08:00
    Git Worktree 完美契合楼组诉求
    ranNice
        16
    ranNice  
       2022-05-13 11:05:31 +08:00   ❤️ 1
    yc8332
        17
    yc8332  
       2022-05-13 11:06:06 +08:00
    不是可以看不同分支的差异吗?
    wolfie
        18
    wolfie  
       2022-05-13 11:06:36 +08:00
    compare with branch ,选择远程分支比对。
    liuhuansir
        19
    liuhuansir  
       2022-05-13 11:11:01 +08:00
    本地 clone 每个分支的代码,打开多个 idea 窗口,想同时看几个分支取决于你的内存空间
    admol
        20
    admol  
       2022-05-13 11:11:48 +08:00   ❤️ 3
    Git Worktree

    存在多个分支,需要不停的切换分支来进行开发或者修改 BUG 时,并且是持续不断的。

    传统的解决办法是克隆仓库到多个目录,切换到不同的分支来进行开发。

    Git 从 2.6.0 开始新增一个命令`git worktree` 来解决这种场景下的问题。
    zamaojava
        21
    zamaojava  
       2022-05-13 11:27:22 +08:00
    这需求太冷门,我倒是遇到过一次,合了垃圾分支代码,快上线了,根本撤销不了,赶紧切了新分支,把需求代码重新复制过来。当时就重新 clone 了项目,然后用 idea 打开了他,就可以 2 个窗口了
    rehoni
        22
    rehoni  
       2022-05-13 11:30:18 +08:00
    再拉一个到本地,idea 当两个项目打开
    mossrock
        23
    mossrock  
    OP
       2022-05-13 11:40:40 +08:00
    @ranNice 看了看描述,确实感觉有点类似,晚上试一试,感谢大佬
    xixitt26
        24
    xixitt26  
       2022-05-13 13:45:24 +08:00
    云端 IDE 是不是能支持。。。
    vanxy
        25
    vanxy  
       2022-05-13 14:51:21 +08:00
    直接右键 -> Git -> Compare with Branch , 选择对比的分支, 就出来左右分栏的编辑器了
    misdake
        26
    misdake  
       2022-05-13 15:15:16 +08:00
    commit 上右键,show repository at revision ,给你一个这个版本的文件树,就能随便看了
    lslvxy
        27
    lslvxy  
       2022-05-13 15:54:08 +08:00
    CV 一个不就行了,两个文件夹分别 checkout 不同的分支
    456789
        28
    456789  
       2022-05-13 19:18:44 +08:00
    project 视图下随便一个文件右击 git -> compare with other branch
    Nachtblut
        29
    Nachtblut  
       2022-05-13 19:24:46 +08:00 via iPhone
    git worktree
    daveh
        30
    daveh  
       2022-05-13 19:41:05 +08:00 via iPhone
    @misdake 对头,show repository at revision 这个是正解,选要看的其他分支的最新 commit 点,右键 show ,直接能查看那个分支所有代码,不需要额外 checkout 动作。
    另外如果想只看差异文件,在分支名右键 Show Diff with Woking Tree 也行,就只看所有差异文件。
    chasingstar
        31
    chasingstar  
       2022-05-13 21:17:32 +08:00
    再 clone 一份代码好像不是什么难事
    yeqizhang
        32
    yeqizhang  
       2022-05-13 21:43:03 +08:00 via Android
    @lslvxy 哈哈,我之前就是这样的,都不用克隆的
    sola97
        33
    sola97  
       2022-05-13 21:46:42 +08:00 via Android
    git worktree
    AllenTsui
        34
    AllenTsui  
       2022-05-15 11:49:30 +08:00
    把项目多复制几个 working copy1 、working copy2 、working copy3...我复制了 5 个,项目并行开发从来不切分支,很舒服
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2770 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:46 · PVG 17:46 · LAX 01:46 · JFK 04:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.