2012-10-06 139 views
3

我正在清理我的本地開發副本。我在服務器上安裝了一個WordPress安裝程序,但我不需要任何回購協議中的WP核心文件。我將wp-*.php添加到本地.gitignore,並使用git rm --cached wp-*.php刪除了一些文件。我承諾這些變化,並推到中央回購。刪除由Git跟蹤的文件

在生產服務器上,我去了git pull remote master,並從服務器上刪除wp-*.php文件。

什麼是正確的方法來實現這一點,沒有從生產服務器上刪除文件的git pull。

回答

4

它只會刪除它們一次(因爲你告訴Git從它的跟蹤中刪除文件)。然後,您可以手動將它們添加回服務器端,並且Git不會再將它們刪除,因爲在第一次刪除後它將不再跟蹤它們。

+0

是否有解決方法或某些工作流程可能允許工作副本刪除某些文件,並從索引中刪除它們而不會導致刪除這些文件,如果有人做了git pull? – Poe

+2

不是。如果你從索引中刪除它們並提交刪除,Git會將它視爲刪除(它是),並在刪除操作時忠實地刪除它們。如果你想刪除被追蹤的東西,但是將它們放在一邊,你需要告知誰將會拉動變化以便在提取之前將其備份並重新恢復。 – Amber

+0

@Amber可能會在另一個分支「develop」上移除它們,然後將'develop''與'''''''''合併爲'master'以記錄合併而不傳播刪除? – VonC

2

@琥珀色是正確的,刪除​​回購是一個刪除,所有克隆將忠實地刪除這些文件,當他們拉'git rm'提交。他們正在重新開始他們正在進行的交易。

如果您不介意將文件保存在回購站中,則刪除它們的替代方法是停止跟蹤其更改。這可以通過git update-index --assume-unchanged來實現。

相關問題