2012-08-03 103 views
2

添加目錄,即使我只是把我的點文件的存儲庫中由禮Barzilay here建議的方式:忽略在目錄中的某些文件與-f

所以,我終於找到了一個解決方案,將最好的:將repo 放在子目錄中,而不是符號鏈接,將 「core.worktree」的配置選項添加爲您的主目錄。現在,當你在你家 目錄中時,你不在git倉庫中(所以第一個問題已經消失),而你的 不需要像第二種情況那樣處理脆弱的符號鏈接。你還有 有排除你不想版本化的路徑的麻煩(例如,「.git/info/exclude」技巧中的「*」),但這並不新鮮。

我的.git /信息/排除這個樣子的:

* 
.*.swp 
*~ 
\#*# 
.DS_Store 

在第一行的*成功地忽略所有的文件,所以我明確地git add -f添加的東西。但是,這具有我想要忽略的文件滑過的副作用。

有沒有辦法告訴git 真的忽略某些文件,即使我用add -f

+0

我不會使用「add -f」,而是正確指出忽略。那麼你想在這裏忽略哪些文件類型? – centic 2012-08-22 20:44:34

+0

@centic基本上幾乎所有的文件都應該被忽略。我想,因爲我使用這個點文件,我會忽略所有不以句點開頭的東西。在'git status'中,我會看到一些我真正不關心的點文件,但由於不應該有那麼多,我可以自己忽略它們,而不是讓Git去做。也就是說,除非有某種預先提交或後添加鉤子,否則我可以使用「取消添加」我真正要忽略的文件。 – echristopherson 2012-08-22 22:28:26

+0

然後我不認爲你可以忽略更多的時候使用-f。 – centic 2012-08-23 05:25:53

回答

0

現在有沒有簡單的方法來做到這一點,因爲通過將*放在.git/info/exclude中,你基本上「盲目」混淆了你真正想要忽略的文件。這是使用git進行點文件管理的獨立工作樹方法的一大缺點,也是我個人拒絕這種方法的原因之一。相反,我寫了一個pluginmr,它通過GNU Stow自動化符號鏈接場管理。

但是,如果您仍然想堅持使用分離式工作樹方法,那麼您絕對應該看看vcsh,而不是重新發明輪子。 I am currently working on making git's ignore mechanism more scriptable,它的可能,這項工作可以在將來使用像vcsh這樣的工具來至少部分地解決這個問題。 (我知道vcsh的作者,剛剛向他提出了這個想法在IRC上。)

最後,我建議與vcs-home傢伙一起出去,以更好地理解所有選項。

+0

感謝您的建議! – echristopherson 2012-09-10 19:21:55