如何在IntelliJ IDEA 2016.1中使用git工作树?

16
最新版本的IntelliJ说它支持git工作树,但我似乎找不到任何地方说明如何使用它。我原本期望在右下角的Git分支弹出窗口中看到一个条目,但我在那里没有看到它。
我也没有在以下位置看到任何描述:
博客文章宣布该功能
新特性视频 IntelliJ帮助和谷歌搜索也没有帮助。
我正在使用Git版本2.7.2.0,工作树是在2.5中引入的。

如果您使用命令“git worktree add ...”手动创建工作树,它能够在其中导航吗? - max630
根据 https://youtrack.jetbrains.com/issueMobile/IDEA-143404 的记录,该问题仍未得到解决,您可能需要跟踪以获取更多信息。 - max630
2个回答

16
据我所知,“支持”意味着当您在IntelliJ中打开worktree时,所有版本控制系统功能都能正常工作。根据max630提供的Youtrack链接中的评论,在2016.1之前,您无法查看差异、查看历史记录或提交更改。
但是,从2016.1开始,您可以将worktree作为新项目打开,并通过IntelliJ执行所有版本控制操作。
对于像我们一样使用.gitignore的人来说,共享项目设置会很不错,但目前似乎还不支持。
我最近一直在使用以下工作流程,并取得了成功:
1. git worktree add ../hotfix hotfix/1.2.3 2. 在IntelliJ中单击“文件”-> “打开” 3. 将所有运行配置手动复制到新的.idea目录中(如果需要)

你找到了绕过手动复制配置的方法吗? - niklaas
1
@niklaas我没有,但是过去几年我们主要从Java转向TypeScript,所以我没有使用IntelliJ。 :) - sarumont

8
最有可能遇到此问题的原因是git worktree add默认使用绝对路径,因此如果您在bash(Git For Windows'或WSL)中运行它,则路径将在Windows git上无效:

C:\code\worktree-repo>git status fatal: Not a git repository: /mnt/c/code/original-repo/.git/worktrees/worktree-repo

您可以通过更新工作树.git文件(而不是工作树的目录!)中的路径为相对路径来解决此问题:

C:\code\worktree-repo>type .git gitdir: ../original-repo/.git/worktrees/worktree-repo

您还应该更新.git/worktrees/worktree-repo/gitdir以使原始仓库中的Windows git知道如何找到工作树,但这并不那么重要(据我所知,它可以防止git worktree prune删除它并从原始仓库中检出相同的分支)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接