Ser*_*a H 5 git version-control phpstorm
我环顾四周,似乎找不到这个特定难题的答案(这是有道理的,否则我不会在这里询问它!)或者至少是否有一个我不明白的问题它。
我在 PhpStorm 中创建了一个项目,“Web 服务器位于远程主机上,文件可通过 FTP/SFTP/FTPS 访问”,并且我一直在对其进行更改,没有任何问题。该项目的结构如下:
\Project Root
\
\ Subfolder A
\ Contents A
\
\ Site
\ Site stuff
\
\ Subfolder B
\ Contents B
Run Code Online (Sandbox Code Playgroud)
现在,我得到了这样的结果,因为虽然我正在处理的主要文件位于 中Site,但我偶尔需要调整其他子文件夹中的一些内容。
保存项目即可毫无问题地上传文件。
我现在遇到的问题是Site使用 Git 在服务器上进行版本控制。我可以登录到服务器并在那里执行一些 Git 操作(尽管我对 Git 不太熟悉),但是当我尝试提取已提交到存储库的一些更改(这是上游,是吗?)时,会出现合并冲突。因为我对此很陌生,所以我不想尝试使用vimdiff.
有没有一种方法可以通过 PhpStorm 设置 Git 仅作用于该特定文件夹,从远程存储库(托管在该项目的另一台服务器上)提取更改,合并并解决 PhpStorm 内的冲突,然后上传此类中的文件在服务器上项目显示为当前分支最新的方式?
我曾考虑过.git通过 SFTP 从服务器获取目录,并将其放入Site文件夹中,就像它在那里一样,但我不确定这是否可行。我还认为 PhpStorm 一开始就有充分的理由不这样做。
编辑:为了澄清一点,Site很脏。在我对这些更改感到满意之前,我不想提交这些更改,但我现在仍然需要它们。我尝试了隐藏、拉取,然后应用,但这就是我收到合并冲突错误的时候,我想在 PhpStorm 中解决这些冲突。
好吧,所以我想我应该大胆地尝试忽略 PhpStorm 拒绝触摸.git文件夹的行为。这是一个很长的路要走,但这就是我所做的:
VCS->Enable Version Control IntegrationGit作为项目根的 VCS这将.git在您的项目根目录中创建一个文件夹。由于我们不需要 VCS 下的根目录而是子文件夹之一,因此我们可以:
PreferencesVersion Control在左侧窗格中选择Directory要使用 Git 的子文件夹的条目,然后单击OKApply和OK这将在日志中抛出一个错误,抱怨该目录“已注册为 Git 根目录,但在那里找不到 Git 存储库”。这很好,因为我们要自己添加它。
.git打开您最喜欢的 FTP 程序并从服务器获取Project Root/Site或其他)您可以删除.git在项目根目录下创建的 PhpStorm 文件夹,因为我们不再需要它了;它将使用我们刚刚复制过来的那个。
可能需要调整一些额外的设置。我使用密钥访问 Git 存储库,因此您可能必须将授权密钥添加到存储库上的 git 用户。
您可以直接跳到步骤 6 并直接在此处添加目录。我猜它会做同样的事情。
但是,是的,现在我可以使用 Git 管理项目,并通过 PhpStorm 而不是服务器上的命令行来进行合并和操作!:D