2017-07-05 213 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或任何您正在使用的或本地计算机中。它只会是服务器上的文件。关键是链接不应该在任何地方回购,你需要在服务器上手动创建它。