【发布时间】:2016-05-17 13:25:43
【问题描述】:
好的,我会简短地解释我的问题:
我有一个网站,比如说一个用户可以聊天和上传头像、图像、文件等的板。
我想在这个网站上使用 git。
所以我做了什么:
- 使用 bitbucket 创建了一个 repo
- 将此仓库克隆到本地
- 添加 .gitignore 文件(见下文)
- 将我的网站复制到我的本地仓库
- 首次提交
- 将所有内容推送到 bitbucket
Bitbucket 现在有了我的网站,但没有我忽略的文件和文件夹
我的 .gitignore 看起来像这样(例如):
uploades/user/avatars
cache/
logs/
好的下一步:
- 我正在使用 ssh 登录我的网络服务器
- 克隆 bitbucket 存储库
现在我的网站上线了,没有任何用户文件(上传、图像、文件等...) 因此,如果用户现在在 git 忽略的文件夹中上传某些内容,我希望这些文件保留。
当我进行本地 php 更改并将其再次推送到 bitbucket 然后在我的网络服务器上执行“git pull”时,所有用户文件都将被删除。
我想念什么?最好的程序是什么?
【问题讨论】:
-
ssh 到服务器并手动创建上传文件夹。您不希望上传文件夹位于 git 中。我假设它没有任何代码,它只有用户内容 - 所以只需留在服务器上。
-
等一下,当我在我的网络服务器上进行克隆然后通过 ssh 添加目录时,可以说,uploads/ 这个目录永远不会被删除,当我这样做时 git 拉?
-
不,不会(如果我理解正确的话)。我也是这样做的。你为什么不试试,看看结果如何。我在服务器上创建裸仓库,然后推送到远程仓库。一旦远程仓库(在我的公共目录之外)是最新的,我就从我的另一个远程仓库转到我的公共目录(public_html)和
git clone。像魅力一样工作。 -
是的,它已经完成了,它就像一个魅力:)
-
您确定您的代码不会删除这些文件吗? Git 不应该接触未跟踪的文件,除非你这样做
git clean。在将这些文件添加到 .gitignore 之前是否已跟踪这些文件?既然您添加了 gitignore,您能否再次重现该问题? (会不会是第一次删除它们正是因为您在提交添加 .gitignore 之前有一个提交删除了它们?)