2010-02-07 43 views
6

我使用git作爲我的主要版本控制系統,並且最近開始在我的CakePHP項目中使用git。這是我目前的.gitignore文件:在您的CakePHP項目中使用Git

app/tmp 
vendors/ 

正如CakePHP的git倉庫使用,但是這將導致更多的工作對我來說部署項目到服務器的時候,因爲我必須去創造一切app/tmp /子目錄,然後才能正常工作。有沒有辦法將它設置爲忽略這些文件夾中的內容,但是仍然將它們置於git控制之下,以便在將repo克隆到hoted目錄中時出現它們?

我也一直有一個問題,當我正在處理它時,我的git索引被重置,這導致我必須做比應有的更多的提交,對此也有任何想法?

+0

你能解釋一下關於git索引問題的更多信息嗎?哪些步驟會重現該問題? – 2010-02-07 20:02:38

+0

您可能想要從http://stackoverflow.com/questions/115983/how-do-i-add-an-empty-directory-to-a-git-repository獲得有關如何添加目錄但忽略其內容的答案。 – 2010-02-07 21:04:42

+0

我不確定導致問題的活動,但似乎是隨機地將索引中的所有文件都顯示爲已刪除,然後我必須將所有文件重新添加到索引。 – trobrock 2010-02-07 22:53:10

回答

11

Git只存儲文件,而不是目錄,因此您可以將隱藏文件添加到該目錄中並提交它。

  1. 刪除應用程序的/ tmp /從的.gitignore
  2. 觸摸應用程序的/ tmp/.keep
  3. git的添加應用程序的/ tmp/.keep
  4. git的承諾
  5. 添加應用程序的/ tmp /對。 gitignore
+0

好吧,那是我以前做的事,我只是不記得該怎麼做。 – trobrock 2010-02-07 22:52:22

4

正如前面提到的git只存儲文件,而不是目錄。默認情況下,cake的.gitignore文件會忽略tmp文件夾中的所有內容,以防止將tmp文件添加到存儲庫中。

你可以(也應該),但是這樣做,你創建一個項目後:

cd /my/app 
git add -f tmp 

這將做到這一點:

$ git status 
# On branch master 
# 
# Changes to be committed: 
# (use "git rm --cached <file>..." to unstage) 
# 
# new file: tmp/cache/models/empty 
# new file: tmp/cache/persistent/empty 
# new file: tmp/cache/views/empty 
# new file: tmp/logs/empty 
# new file: tmp/sessions/empty 
# new file: tmp/tests/empty 

因此您的TMP文件夾結構準備好提交,但是您的tmp目錄中的所有其他文件將會(繼續)被忽略。

1

我的.gitignore文件。

tmp/* 
[Cc]onfig/core.php 
[Cc]onfig/database.php 

webroot/files/ 
webroot/img/photos/ 

!empty 
.DS_Store 

如果你會注意到我有!空,這使我無法創建.keep文件,所有這些文件都是SVN以前的版本。最後,您還會看到,我將這個配置用於[Cc]記錄的cakePHP 1.x和2.x項目。我有一些文件夾設置,我存儲用戶文件,所以我總是忽略它們。最後,.DS_Store忽略我的MAC爲我的項目創建的縮略圖視圖。

+0

是什麼意思!空的意思是? – dynamic 2015-05-04 07:59:41