2017-07-27 282 views
0

我環顧四周,似乎無法找到這個特定難題的答案(這將有意義,否則我不會在這裏詢問它)或者至少如果有一個我沒有理解它。添加Git到現有的PhpStorm項目子文件夾

我已經在PhpStorm中創建了一個項目,「Web服務器在遠程主機上,文件可以通過FTP/SFTP/FTPS訪問」,並且我一直在進行更改,沒有任何問題。該項目的結構如下:

\Project Root 
    \ 
    \ Subfolder A 
     \ Contents A 
    \ 
    \ Site 
     \ Site stuff 
    \ 
    \ Subfolder B 
     \ Contents B 

現在,我這有這樣的,因爲雖然我工作的主要文件是在Site,我偶爾也需要調整一些東西,在其他的子文件夾。

保存項目上傳文件沒有問題。

我現在遇到的問題是Site在使用Git的服務器上受版本控制。我可以登錄到服務器,並在那裏做一些Git的東西(儘管我對Git不太熟悉),但是當我試圖提交一些已經提交給repo的更改(這是上游,是嗎?)時,會出現合併衝突。因爲我對此很陌生,所以我寧願不嘗試通過使用vimdiff的命令行來解決衝突。

有沒有一種方法可以通過PhpStorm設置Git,只對該特定文件夾起作用,從遠程回購(從該項目託管在另一臺服務器上),合併和解決PhpStorm中的衝突,然後上傳這些文件在服務器上顯示爲與當前分支保持一致?

我想過從服務器通過SFTP抓取.git目錄,並在Site文件夾中找到像它那樣的文件夾,但我不確定這會起作用。我也認爲PhpStorm有一個很好的理由不首先這樣做。

編輯:有點澄清,Site是髒的。我不想在這些變化讓他們滿意之前進行這些修改,但我現在仍然需要他們去那裏。我嘗試存儲,拉,然後應用,但那是當我得到合併衝突錯誤,並且我想解決PhpStorm中的這些衝突。

+0

如果'Site'文件夾是版本控制下的唯一東西,那麼只有這個文件夾將由Git管理。您無需擔心與VCS進程混合的其他文件/文件夾。 –

+0

@TimBiegeleisen我不擔心他們與VCS混合在一起,我只需要找出一種方法讓PhpStorm認識到「Site」實際上在服務器上的VCS下,並知道回購站在哪裏進行更改我可以合併並解決PhpStorm內部的衝突。如果這是有道理的:P –

回答

1

好吧,所以我想我會大膽嘗試忽略PhpStorm拒絕觸摸.git文件夾。這是一個很長的路輪,但這裏是我所做的:

  1. 打開項目
  2. 選擇VCS - >Enable Version Control Integration
  3. 選擇Git爲VCS對項目的根

這將創建一個.git文件夾在您的項目根目錄中。因爲我們不希望在VCS根,但一個子文件夾,我們可以:

  • 打開Preferences
  • 選擇Version Control在左側窗格中
  • 選擇項目在右側窗格,然後單擊編輯鉛筆
  • 在出現的對話框中,編輯Directory進入你想使用Git的使用,並單擊子文件夾OK
  • ApplyOK
  • 這會在日誌呻吟中產生一個錯誤,該目錄「被註冊爲Git根目錄,但沒有在其中找到Git回收站」。這很好,因爲我們將自己添加它。

  • 關閉PhpStorm
  • 打開你最喜愛的FTP程序,並抓住從服務器
  • plonk的它在您之前選擇的目錄(這樣Project Root/Site或其他)
  • .git

    您可以刪除在項目根目錄下創建的.git文件夾PhpStorm,因爲我們不再需要它;它會使用我們剛纔複製的那個。

    可能有一些額外的設置來調整。我使用密鑰訪問Git倉庫,因此您可能需要在倉庫中爲授權用戶添加授權密鑰。

    可以只是直接跳到第6步,直接在那裏添加目錄。我猜測它做同樣的事情。

    但是,現在我可以使用Git來管理項目,並通過PhpStorm而不是服務器上的命令行來執行合併和事務! :D

    0

    既然你已經藏你的本地修改,您可以通過以下步驟同步本地Site與服務器:

    1. 退出當您通過git merge --abort執行git pull合併衝突。
    2. 保留本地版本作爲遠程回購git reset --hard origin/master

    當您準備好使用本地更改時,可以使用git stash pop

    +0

    我不想將其他文件夾添加到回購。一個是項目特定的,另一個有自己的回購。我只想在「Site」文件夾中執行操作,方法是從服務器上關聯的repo中更改併合並它們。 –

    +0

    所以遠程倉庫除了'Site'文件夾外還有其他文件夾,你只需要從服務器上的'Site'文件夾中進行更改? –

    +0

    遠程回購只是'Site'。子文件夾不在回購站中,我不希望它們成爲。我只是提到他們說明並非整個項目都受版本控制,但他們仍然在PhpStorm項目中。 –

    相關問題