2012-04-02 76 views
1

我已經嘗試過什麼由有關如何忽略文件以前的問題#1建議:Ignore files that have already been committed to a Git repositorygit的添加/刪除承諾並不僅僅是忽略的.gitignore忽略文件

什麼建議:

git rm -r --cached . 

我使用的命令:

git rm -r --cached application/config/config.php 
//i only want to ignore this one file 

不幸的是,當我做git add.然後git commit我的config.php文件是從存儲庫中刪除了,而不僅僅是忽略。

我有一個.gitignore文件以在我的根目錄下,它包含以下列表項:

application/config/config.php 

可能有人能幫助我理解爲什麼這個config.php文件正在刪除和公正不被忽視?

這裏就是我的git的狀態顯示:

$ git status 
# On branch master 
# Changes not staged for commit: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
# modified: .gitignore 
# modified: application/config/config.php 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

謝謝你,

+1

在做'add'和'commit'之前,'git status'報告是什麼? – Ali 2012-04-02 14:35:52

+0

hi Ali,請參閱上面修改的問題,謝謝! – 2012-04-02 14:50:19

+0

您已修改文件。試試'git checkout - application/config/config.php' – mschonaker 2012-04-02 14:56:36

回答

3

它正在從資料庫中刪除,因爲你刪除了它。 git rm將刪除該文件,並且--cached將其保留在您的工作目錄中。

如果您想製作文件,您可以做git update-index --assume-unchanged <filename>,它只是從不會通知文件發生變化,但會將舊版本保留在存儲庫中。在這裏進一步閱讀:http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html

+0

Hi Dan,那完美的工作!我懷疑'rm'不是正確的命令,但不知道'git update-index ...'。謝謝! – 2012-04-02 14:57:37

+0

對我也很有幫助;) – 2015-08-07 07:15:53