2017-07-05 256 views
0

在過去的某個時候,symlink媒體文件已添加到我正在處理的git repo中。我想從repo中刪除它,在本地刪除文件,但不在服務器上部署repo(我也不想重新創建符號鏈接)。 git update-index --assume-unchanged似乎不是持久性的,並且git rm --cached會在部署中終止文件。從git repo中刪除文件,但不是從服務器中刪除文件

有沒有辦法做到這一點?

+0

你是什麼意思把它從回購中刪除?將其從本地存儲庫中刪除?並在下一次拉它不會重新出現,或者如果你推它不會推刪除? – kabanus

+0

如果您不打算有意修改對象,則可以將其添加到您的git.ignore文件 – Artem

+0

您的本地回購和服務器回購是副本。你可以在本地擁有你沒有推送到服務器的東西(使用gitignore),但你不能在本地沒有的東西。 – Liam

回答

0

簡短的回答是:沒有,有沒有辦法既:

  1. 從回購
  2. 有原始git pull刪除克隆磁盤上的文件刪除文件

如果您的生產機器上的部署過程以git pull開頭,則必須採取一些額外操作才能在此機器上重新創建符號鏈接。


我不知道該怎麼deployhq工作:我想你有辦法代碼「並請部署代碼後執行的行動這個腳本/列表」,動作此列表應包括「添加符號鏈接」。

0

最接近你想要的東西我發現在deployhqconfig files。這對任何非回購文本文件都很有用,但不幸的是,這不適用於符號鏈接。

這可能工作:

  1. 首先從回購除去符號鏈接(GIT RM,提交,推/部署)。
  2. ssh到您部署的服務器。在那裏創建符號鏈接。如果它是回購中的東西,你可以將它添加到.gitignore,但你不必 - 它無關緊要。

現在服務器有鏈接,並且它未連接到存儲庫,所以它不會存在於github或任何您正在使用的或本地計算機中。它只會是服務器上的文件。關鍵是鏈接不應該在任何地方回購,你需要在服務器上手動創建它。