从 git 存储库中删除文件,但不从服务器中删除文件
Remove file from git repo, but not from server
在过去的某个时候,一个符号链接媒体文件已添加到我正在处理的 git 存储库中。我想将其从回购中删除,在本地删除文件,但不在回购部署到的服务器上删除(我也不想重新创建符号链接)。 git update-index --assume-unchanged
似乎不持久,git rm --cached
会在部署时杀死文件。
有办法吗?
简短的回答是:不,没有办法两者兼顾:
- 从存储库中删除一个文件
- 有一个原始的
git pull
不 删除克隆磁盘上的文件
如果您的部署过程在您的生产机器上以 git pull
开始,您将需要采取一些额外的操作来在这台机器上重新创建符号链接。
我不知道 deployhq 是如何工作的:我想你有办法编写代码 "and please execute this script/list of actions after deploying the code",这个操作列表应该包括 "add the symlink".
我在 deployhq
config files 中找到了最接近您想要的东西。这适用于任何非回购文本文件,但不幸的是,这不适用于 symlinks.
这可能有效:
- 首先从存储库中删除 symlink(git rm,提交,push/deploy)。
ssh
到你部署的服务器。在那里创建符号 link 。如果它在 repo 中,您可以将它添加到 .gitignore
,但您不必这样做 - 没关系。
现在服务器有 link,并且它未连接到存储库,因此它不会存在于 github
或您正在使用的任何内容或您的本地计算机中。它只会是服务器上的一个文件。重点是 link 根本不应该在任何地方的回购中 ,并且 您需要在服务器上手动创建它 。
在过去的某个时候,一个符号链接媒体文件已添加到我正在处理的 git 存储库中。我想将其从回购中删除,在本地删除文件,但不在回购部署到的服务器上删除(我也不想重新创建符号链接)。 git update-index --assume-unchanged
似乎不持久,git rm --cached
会在部署时杀死文件。
有办法吗?
简短的回答是:不,没有办法两者兼顾:
- 从存储库中删除一个文件
- 有一个原始的
git pull
不 删除克隆磁盘上的文件
如果您的部署过程在您的生产机器上以 git pull
开始,您将需要采取一些额外的操作来在这台机器上重新创建符号链接。
我不知道 deployhq 是如何工作的:我想你有办法编写代码 "and please execute this script/list of actions after deploying the code",这个操作列表应该包括 "add the symlink".
我在 deployhq
config files 中找到了最接近您想要的东西。这适用于任何非回购文本文件,但不幸的是,这不适用于 symlinks.
这可能有效:
- 首先从存储库中删除 symlink(git rm,提交,push/deploy)。
ssh
到你部署的服务器。在那里创建符号 link 。如果它在 repo 中,您可以将它添加到.gitignore
,但您不必这样做 - 没关系。
现在服务器有 link,并且它未连接到存储库,因此它不会存在于 github
或您正在使用的任何内容或您的本地计算机中。它只会是服务器上的一个文件。重点是 link 根本不应该在任何地方的回购中 ,并且 您需要在服务器上手动创建它 。