Git rm缓存删除本地仓库上的本地文件

时间:2016-08-18 09:44:03

标签: git gitignore

嗨我有一个裸仓库,有2个用户从该仓库获得了克隆,

一段时间后,我发现我需要忽略跟踪文件夹中的图像,但我们希望每个客户都有自己的文件夹,而不是删除,[如存储产品图像]

所以我将文件夹添加到gitignore,然后我们只需要裸回购就没有任何图像,

所以我搜索并创建了删除之前添加的图片我们应该使用

git rm --cached folder/

所以使用此命令后,使用此命令的客户端具有该文件夹,并且每件事都可以

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

那么我们该怎么办才能将图片从裸仓库中删除,而不是使用git pull

的客户端

3 个答案:

答案 0 :(得分:1)

例如,您可以执行以下操作:git rm -r --cached folder

答案 1 :(得分:0)

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

为了避免其他客户端发生这种情况,每个客户端应首先将图像文件添加到拉动之前.gitignore 。这样,当Git在拉动期间发送订单以删除文件时,文件将被忽略,它们将保留在本地。

答案 2 :(得分:0)

要解决此问题,请创建folder/并添加名为empty的文件,因为git需要文件夹结构中的文件才能存在。

在.gitignore文件中,您将拥有忽略行folder。在下面添加一个新行!folder/empty,这将意味着忽略'文件夹'中的项目,而不是'空'文件。

使用空白的index.html文件或类似文件也可以这样做。