2012-06-25 90 views
1

幾乎每次我啓動新回購時都會發生這種情況。.gitignore上的新回購(無法在新回購中重置)

  1. 開始一個新項目。創建一堆新文件。
  2. git init
  3. git add .
  4. 拍哦,有一些IDE /建克魯夫特我需要忽略。
  5. echo ".scons-nodecount" > .gitignore
  6. 該死的,.gitignore沒有看到它,因爲這個文件已被添加。
  7. git reset .scons-nodecount
  8. 該死的,git reset不起作用,因爲還沒有提交。

    ...不知道該怎麼辦在這裏,所以......

  9. 開始:rm -rf .git

- 編輯 -

如何從刪除文件新鮮的回購指數? git reset是我傳統上做的事情,但是如果沒有事先提交,似乎不允許這樣做。

+0

你問了一個問題嗎? – EricSchaefer

+0

你的問題很模糊,我建議你編輯它。是你的問題:我如何追溯添加條目到我的.gitignore文件,並讓它們適用於以前添加到新鮮的回購的東西? –

回答

5

我一直在做同樣的事情。嘗試git rm --cached .scons-nodecount。這將指示Git刪除文件,但僅限於索引(--cached)。

0

最好是配置一個全局模板並將IDE模式寫入$ GIT_DIR/info/exclude,因此在每個init中您將擁有IDE的排除模式,或者僅爲所有項目使用公共文件,併爲其指定core.excludesfile

+0

其實我更喜歡在'.gitignore'中包含那些也包含在資源庫中的東西,所以其他工作的項目也不會提交這些文件。 – poke

+0

是的,你是對的,但是爲了這種情況,我把git模板放到了存儲庫中,所以其他人可以使用'git init ./。git-template'爲項目安裝模板。這包括特殊掛鉤,常用設置,排除模式和別名。這個解決方案允許我們維護應用程序的git設置,並確保每個人都具有相同的配置(行結束等)。 – lisachenko

2

如果您不想使用git rm --cached手動刪除所有文件,則只需刪除.git/index即可簡單地重置完整索引的另一種方法。這將重置所有內容而不實際觸及文件,因此您無需徹底重新開始。

但當然git rm --cached <file>是你通常會做的。

+0

+1這絕對是一個更好的方法,當它不僅僅是你偶然添加的少數文件而你只是想從頭開始。 – cdhowie