• 请不要在回答技术问题时复制粘贴 AI 生成的内容
mossrock
V2EX  ›  程序员

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

  •  
  •   mossrock · May 13, 2022 · 9540 views
    This topic created in 1641 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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