簡體   English   中英

在Git提交與用於測試和開發的PHP代碼不同的測試環境中,有什么方法可以在項目上工作?

[英]What ways are there to work on a project in a testing environment where the Git commit needs to be different to the PHP code used for testing and dev?

在我的項目中,可部署版本需要具有每個外部庫的副本,一個不同的配置文件以及安裝和設置文件,出於安全方面的考慮,如果存在主項目,則將其設置為拒絕運行。 因此,其他項目的上游副本需要提交回購。 如何在本地主機上運行的代碼上工作,在本地主機上,文件布局以及有時來自開發和測試的文件內容與我需要提交的內容不同?

背景

我正在github上托管的一個項目上,我的主要IDE是netbeans,它對git的支持不完善(足以滿足我的99%以上的需求)。 該項目使用PHP,並使用其他幾個項目作為庫。

由於Netbeans對子存儲庫沒有最好的支持,因此我選擇將每個其他項目保留在單獨的項目中。 這很好,因為中央項目會在配置數據中查找在何處可以找到這些外部庫。

一半答案

我的本能是假設在提交github存儲庫之前需要有一些“構建階段”,但是到底該如何設置所有這些呢?

我可以寫一些自制的東西,但是當我拉別人的貢獻時,除非我們有一個用於構建的分支和一個用於工作副本的分支,這似乎不必要地復雜,並且可能留下開發配置數據,否則我將需要逆轉該過程。在公開展示中(更不用說更新是一團糟了)。

我已經看到其他人也遇到了一些類似的問題,但都沒有得出結論(在提出問題時)( 如何在不共享敏感信息的情況下從github推送和拉取?解決方案

我的主要IDE是netbeans,它對git的支持不完善

大多數開發人員僅使用命令行。 我偶爾會切換到NetBeans沖突解決程序,這非常好,但是對於普通的東西,控制台通常更快。

我的本能是假設在提交github存儲庫之前需要有一些“構建階段”

...除非我們有一個用於構建的分支和一個用於工作副本的分支

不,只有一個存儲庫。 最好將存儲庫視為代碼歷史記錄,而不是部署狀態。 分支應該僅用於合並到您的主線/母版中的功能或較大的更改。

部署時有很多可用的選項。 第一個是Composer,Mark指出:在部署時,您發出installupdate命令,該命令以遞歸方式獲取滿足庫要求的依賴項。 您可以使用Bower對JavaScript依賴項執行相同的操作。

一些部署策略傾向於在本地構建,然后將scp / rsync到遠程服務器。 Composer和Bower可能仍然是一個好主意,但是您編寫了一個構建腳本(例如,使用AntPhing )來在本地臨時文件夾中創建一個構建副本,然后將其發送到服務器。 在這里也很常見,將其推送到服務器上的新發行版文件夾,然后在其准備就緒時交換符號鏈接或Apache配置文件。

出於安全考慮,可部署版本需要具有每個外部庫的副本,不同的配置文件以及安裝和設置文件

假設這是一個Web項目,您是否嘗試過將敏感的環境數據添加到Apache配置文件中? 這可以在PHP中輕松閱讀,當然,PHP並不關心此信息是否有所不同,具體取決於您是開發,測試,演示分支還是實時運行。


進一步閱讀:免費的優秀PHP部署書 ,其中建議Phing和Capistrano。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM