Git的RM缓存删除本地文件的本地回购

问题描述:

嗨,我有一个裸露的回购协议和2个用户,而我创办我需要忽略从文件夹跟踪图像后,得到了从回购克隆,Git的RM缓存删除本地文件的本地回购

但我们要每一个客户有一个文件夹本身,而不是删除,[喜欢存储产品图片]

,所以我添加的文件夹,以gitignore,然后我们只需要裸露的回购协议没有任何图像,

于是我去搜索,并成立删除之前添加的图片我们应该使用

git rm --cached folder/ 

,因此使用此命令使用此命令后,客户端有一个文件夹,每一件事情是确定的

但另一个客户端运行git pull,看到了本地文件夹删除!

所以我们应该怎样做到这一点的照片只能从裸露的回购协议中删除,而不是使用git客户拉

我觉得什么事是,第一个客户端上使用的文件夹git rm,然后推,从分支删除它们在存储库上。然后,当另一个客户端拉动时,Git有效地向这些图像文件发送删除命令,从而将它们从第二客户端的本地文件中删除。

为了避免这种情况的发生为其他客户,每个客户应首先将图像文件前添加到.gitignore拉动。这样,当Git在pull中删除文件时发送命令时,这些文件将被忽略,并且它们将保持在本地。

+0

该文件夹在.gitignore之前从裸回购,但删除文件夹! –

+0

_你已经将该文件夹添加到'.gitignore'中,但丢失该文件夹的客户端是否也有该文件夹? –

+0

是的,我检查了这一步之前的原因.gitignore推回购和其他客户端拉它 –

为了解决这个问题,创建folder/并添加一个名为empty的文件,因为git需要文件夹结构中的一个文件来存在它。

在你的.gitignore文件中,你会看到忽略行folder。在右下方添加一个新行!folder/empty,这将意味着忽略“文件夹”中的项目,而不是“空白”文件。

使用空白index.html文件或类似文件也可以做到这一点。

+0

'.gitkeep'是“空”目录占位符的一个非常标准的名称。 – dahlbyk

+0

我已经看到它在各种不同的项目中以各种不同的方式完成。在Apache的索引已经打开(停止目录列表)的情况下,我将它视为web项目的'index.html';对于其他一些项目(包括网络项目)是空的; .keep按照https://www.git-tower.com/learn/git/faq/add-empty-folder-to-version-control中的记录基本上似乎没有一个标准的做法,除非我错过了一些文档。我很高兴指出这方面的更多文档 – gabe3886