對於我的第一個phalcon項目,我決定選擇fortrabbit-hosting,儘管我沒有使用git的強大經驗。我在一棵主樹上工作,這個主樹不斷被推動並推動着。我有一些文件夾,裏面充滿了用戶生成的內容(圖片上傳)。爲了在做新提交後不刪除這些文件,我把這個文件夾放到我的.gitignore文件中。但我怎樣才能更新我的本地存儲庫與這個用戶生成的內容? git pull或git fetch在這種情況下不起作用。那麼使用git部署到現場舞臺的正確方式是什麼?git clone - 用戶生成內容丟失
回答
您的代碼庫是Git的一部分,您可以使用Git將其部署到Web空間。 Web空間本身不在Git中。遠程Git倉庫同步或複製它的內容到網站空間。
這不是設置正確的.gitignore
規則的問題。 webspace上的文件可能會發生變化:例如,軟件權限temp-,log-,cache-files或user-uploads。另一個例子是,當使用「網絡安裝程序」(認爲WordPress更新)。所有這些更改都不會反映在Git中 - 因爲將這些運行時數據存儲在Git中並不是一個好習慣,並且因爲沒有辦法將這些更改同步回Git倉庫(所以您可以將這些更改重新導入) 。這不可能,也不是你想要的。
有應對這種局面多種方法,最常見的兩種模式是:
最專業的是遵循12因子設計模式:代碼和內容是嚴格分開的。用戶生成的內容將被存儲在場外。通過每次Git推送,代碼庫將被重新打包並重新部署。 Apps的存儲是短暫的,在每個(原子)部署中,完整的代碼庫將被替換爲新的內容。 Fortrabbit專業堆棧就是這樣設計的。
更方便 - 尤其是對傳統思維/設計 - 就像fortrabbit通用協議棧,在網絡空間,其中在從Git的回購部署新的文件將被「同步」的解決方案,以「覆蓋,但不刪除」。 Web空間是持久的,必要時可以通過SSH/SFTP登錄以獲取並下載所有文件。
請仔細詢問。這個問題可能不夠普遍,對堆棧溢出感興趣。
感謝您的詳細回覆!現在我知道如何處理git和fortrabbit。 –
- 1. Git Stash的內容丟失
- 2. git clone git @ myserver:gitolite-admin失敗
- 3. asp.net內容丟失在動態生成的表
- 4. 防止git自動生成用戶電子郵件,如果丟失
- 5. Qt畫內容丟失
- 6. 丟失TThreadList的內容
- 7. Android-標籤內容丟失
- 8. Viewpager丟失的內容
- 9. 在Jenkins中生成用戶內容
- 10. Liferay的 - 導出用戶生成內容
- 11. WordPress用戶生成的內容插件
- 12. 用戶生成內容的CMS?
- 13. AngularJS - 用用戶生成的內容增加動態HTML內容
- 14. 在jQuery的clone()中丟失了什麼?
- 15. 查找丟失的git存儲的內容
- 16. Git正在丟失單個文件的歷史記錄/內容
- 17. 使用VCorpus()函數但丟失內容
- 18. git-instaweb和git-clone
- 19. git clone(Permission Denied)
- 20. git clone localhost?
- 21. hg clone git:.... aborts:連接失敗?
- 22. git pre-commit腳本調用git clone並失敗
- 23. 容器啓動時的Docker git clone?
- 24. libvlc git clone 2.0.6
- 25. Debian上的Git clone問題
- 26. 當選擇發生變化時,DataGridComboBoxColumn會丟失其內容
- 27. Intellij Git Clone問題
- 28. git svn克隆,合併信息丟失
- 29. Symfony Routing;用戶生成內容中的內部URI
- 30. Matlab的數字內容丟失
「git pull」或「git fetch」在這種情況下不起作用「......當然它沒有。你讓Git忽略這些內容:「我把這個文件夾放到我的'.gitignore'文件中。 (這可能是正確的選擇,內容不應該用代碼來跟蹤,你的最終目標是什麼? – Chris
感謝您的快速響應:-) ...我的最終目標是使用git從live-server獲取所有數據,即使我已經設置了一些文件夾gitignore。有沒有辦法在獲取所有文件時忽略gitignore? –
編號'git fetch'不能在文件上操作;它在_commits_上運行。無法使用Git「提取」未提交的數據。如果你真的需要在兩臺機器之間同步內容,請考慮一下;你真的可能不需要它 - 你應該單獨考慮你的代碼。 – Chris