2016-08-18 129 views
0

嗨,我有一個裸露的回購協議和2個用戶,而我創辦我需要忽略從文件夾跟蹤圖像後,得到了從回購克隆,Git的RM緩存刪除本地文件的本地回購

但我們要每一個客戶有一個文件夾本身,而不是刪除,[喜歡存儲產品圖片]

,所以我添加的文件夾,以gitignore,然後我們只需要裸露的回購協議沒有任何圖像,

於是我去搜索,併成立刪除之前添加的圖片我們應該使用

git rm --cached folder/ 

,因此使用此命令使用此命令後,客戶端有一個文件夾,每一件事情是確定的

但另一個客戶端運行git pull,看到了本地文件夾刪除!

所以我們應該怎樣做到這一點的照片只能從裸露的回購協議中刪除,而不是使用git客戶拉

回答

0

我覺得什麼事是,第一個客戶端上使用的文件夾git rm,然後推,從分支刪除它們在存儲庫上。然後,當另一個客戶端拉動時,Git有效地向這些圖像文件發送刪除命令,從而將它們從第二客戶端的本地文件中刪除。

爲了避免這種情況的發生爲其他客戶,每個客戶應首先將圖像文件前添加到.gitignore拉動。這樣,當Git在pull中刪除文件時發送命令時,這些文件將被忽略,並且它們將保持在本地。

+0

該文件夾在.gitignore之前從裸回購,但刪除文件夾! –

+0

_你已經將該文件夾添加到'.gitignore'中,但丟失該文件夾的客戶端是否也有該文件夾? –

+0

是的,我檢查了這一步之前的原因.gitignore推回購和其他客戶端拉它 –

0

爲了解決這個問題,創建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