2012-08-16 19 views
4

不想更改.gitignore,因爲其他人需要回購中的文件。但我有我自己的副本,我想使用。如何保留我的本地版本的文件,而不使用.gitignore?

我編輯.git/info/exclude,並添加以下內容:

/Gemfile 
/Gemfile.lock 
/config/database.yml 
/spec/spec_helper.rb 

這似乎並沒有做任何事情。 git status還表示:

# 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: Gemfile 
#  modified: Gemfile.lock 
#  modified: config/database.yml 
#  modified: spec/spec_helper.rb 

是什麼讓我的本地文件的版本不使用的.gitignore的最佳方式?

+0

這是你可以使用[Keyword Expansion](http://git-scm.com/book/ch7-2.html#Keyword-Expansion)的東西嗎? – R0MANARMY 2012-08-16 02:09:41

回答

0

您已經開始使用領先的/所有文件。我認爲,如果你刪除一切都會很好地工作:

Gemfile 
Gemfile.lock 
config/database.yml 
spec/spec_helper.rb 
+0

我發佈這個問題之前我曾嘗試過。同樣的結果。 – 2012-08-16 01:50:47

+0

snihalani有,實際上。沒關係。 – 2012-08-16 01:50:53

+0

您不能要求Git忽略已存在於存儲庫中的文件。 – 2012-08-16 01:51:43

4

.gitignore.git/info/exclude只適用於那些不已經在倉庫裏的文件。如果這些文件位於存儲庫中,則不能要求Git忽略它們。

你可以做的是本地維護這些變化,無論是作爲你進入的合併工作在主,或爲一組,你在主的頂部變基變化的一個分支。但是,這兩個都有點不方便。

1

我用它也被我的機器上的全局忽略文件 - 所以這種方式,您可以根據文件的.gitignore你+全局設置局部於你的機器有項目

例如我有這個的〜 /.gitconfig

[core] 
    excludesfile = /home/adrian/.gitignore 
+3

您不能要求Git忽略已存在於存儲庫中的文件。 – 2012-08-16 01:52:08

+0

好點 - 應該詳細閱讀OP的問題 – 2012-08-16 01:53:23

7

你也許可以打電話git update-index --assume-unchanged [file names]或者有一堆文件,只是做它的.gitignore和修改忽略文件,只要你願意多。

documentation(重點煤礦):

當「假設不變」位上的git停止檢查可能的修改工作樹中的文件,所以您需要手動取消設置位來告訴git的時候你改變工作樹文件。 ...
該選項也可以用作粗略的文件級機制來忽略跟蹤文件中未提交的更改(類似於.gitignore對未跟蹤文件所做的操作)

相關問題