我的问题是:如何使用分支?我的意思是,我知道切换分支时,我工作的目录可以完全改变。例如:我的分支A包含a.html。我的分支B只包含b.html。如果我在本地切换分支,我的文件夹内容将改变。PhpStorm每次切换分支是否会在我的部署服务器上添加/删除a.html/b.html?显然,这不是我想要的。这些更改将如何反映在部署服务器上,PhpStorm如何管理它? 谢谢您的帮助。
对于这样的问题,你可以采用多种不同的方法。以下是其中的几种。
我更喜欢第二种方法,因为我不必等待cron完成它的工作,而且我可以看到是否出现了诸如合并冲突之类的错误。
以防有人正在寻找解决方案:
Tools > Deployment > Options
取消勾选 跳过外部更改
请注意:选项 自动上传(始终)
必须被勾选
您可以利用同步存储库控制:
在.idea文件夹中初始化一个存储库,添加与主存储库相同的分支,并将相应的deployment.xml添加到其中。因此,您的项目将有两个存储库-一个是共享代码的主要存储库,另一个是带有.idea/deployment(和其他必要配置)的本地存储库。
确保.idea文件夹中的存储库在IDE中被正确识别,在“设置|版本控制”中添加映射。然后在“设置|版本控制|Git”中启用对所有分支执行git操作。
这样,随着在主存储库中切换分支,deployment.xml的版本也会被切换。
我测试过了,它运行良好。您必须在.idea中设置与主要repo相同的分支,并按照描述进行设置。在.idea repo中提交部署.xml文件的两个版本。 切换分支时,.idea repo分支也会被切换。唯一的注意事项是您必须使用PHPStorm Git Branches窗口同时切换两者。通过终端中的git checkout切换不起作用。当您习惯使用终端时,我发现这不太方便。通过Git Branches窗口切换在终端中不可见,因此您很快就会混淆哪个分支已检出。
更多信息:
https://blog.jetbrains.com/idea/2012/08/git-branches-for-multi-root-projects/ https://www.jetbrains.com/help/idea/manage-branches.html#synchronous_branch_control
PHPStorm的GIT只会使用您本地的副本。这与部署无关。PHPStorm不应该在项目中提交自己的配置文件。您可以在“设置->版本控制->忽略的文件”中检查,其中应该显示“.idea”文件夹和以“.iws”结尾的文件。当然,您也可以添加其他要忽略的文件(如您自己的配置文件)
如果您在CLI中使用git(而不是在PHPStorm中),则应创建一个.gitignore文件来忽略PHPStorm的配置文件:
/.idea
*.iws
只有在部署选项中启用了“上传外部更改”时,PHPStorm才应该仅同步分支切换,因为GIT是外部的。
工具|部署|与已部署同步...
。无论如何:在设置|部署|选项
中有一些自动部署的设置(据我所知,VCS操作被视为“外部活动”,因此您应该检查该选项)。 - LazyOne