将 Git 添加到现有 PhpStorm 项目子文件夹

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 中解决这些冲突。

Ser*_*a H 5

好吧,所以我想我应该大胆地尝试忽略 PhpStorm 拒绝触摸.git文件夹的行为。这是一个很长的路要走,但这就是我所做的:

  1. 打开项目
  2. 选择VCS->Enable Version Control Integration
  3. 选择Git作为项目根的 VCS

这将.git在您的项目根目录中创建一个文件夹。由于我们不需要 VCS 下的根目录而是子文件夹之一,因此我们可以:

  1. 打开Preferences
  2. Version Control在左侧窗格中选择
  3. 在右侧窗格中选择项目,然后单击编辑铅笔
  4. 在出现的对话框中,编辑Directory要使用 Git 的子文件夹的条目,然后单击OK
  5. Apply和OK

这将在日志中抛出一个错误,抱怨该目录“已注册为 Git 根目录,但在那里找不到 Git 存储库”。这很好,因为我们要自己添加它。

  1. 关闭 PhpStorm
  2. .git打开您最喜欢的 FTP 程序并从服务器获取
  3. 将其放入您之前选择的目录中(所以Project Root/Site或其他)

您可以删除.git在项目根目录下创建的 PhpStorm 文件夹,因为我们不再需要它了;它将使用我们刚刚复制过来的那个。

可能需要调整一些额外的设置。我使用密钥访问 Git 存储库,因此您可能必须将授权密钥添加到存储库上的 git 用户。

您可以直接跳到步骤 6 并直接在此处添加目录。我猜它会做同样的事情。

但是,是的,现在我可以使用 Git 管理项目,并通过 PhpStorm 而不是服务器上的命令行来进行合并和操作!:D