2014-09-04 60 views
6

我有一個文件夾images它曾被跟蹤和我未跟蹤使用: git rm -r --cached images在本地混帳Untrack文件夾並推送到生產沒有刪除

我還向我的gitignore添加了images/。但是,我擔心,當我提交併拉動我的生產服務器時,圖像文件夾將被刪除。原因是因爲github應用程序實際顯示文件被刪除。

那麼,如何防止在本地刪除,然後未跟蹤和忽略的文件在生產服務器上不被刪除git pull

+0

任何原因,特別是爲什麼你不想讓這個文件夾在版本控制下? – Jubobs 2014-09-04 12:32:27

+4

因爲實際管理內容的人通過ftp而不是git來改變圖像文件夾的內容。使用git是過度的 – Ortixx 2014-09-04 12:48:29

回答

6

使用git rm --cached,這些文件將從git中刪除,儘管它們仍位於本地文件夾中。因此,在push之後,服務器上的文件將被刪除,其他人的存儲庫也會被刪除,當它們爲pull時。

更好的方法是使用git update-index

git update-index --assume-unchanged images/* 

它應該滿足您的要求。唯一的問題是,如果其他人更改這些圖像文件並推送到git服務器,當您使用pull時,仍然會得到這些更改。

1

我實際上做了一個不同的方式。由於只有2人在使用git(我和另一個開發人員),所以我們只是在本地解開了文件夾。然後,我承諾新的.gitignore並將其放到生產服務器上。之後,我解開生產服務器上的文件夾,瞧!其他

0

一種選擇要考慮到可能對新隊友更好的使用在未來的下面添加需要的是目錄,但省略了它們的內容:

**/images/* 
!**/images/readme.md 

因爲Git不會空關注自身目錄,訣竅是告訴Git不要跟蹤images目錄中的任何內容。但是要首先創建目錄,我們需要一個文件,因此最後我們說「不要跟蹤這個目錄中的任何內容,除了這個自述文件的」。

相關問題