2015-11-06 47 views
3

我有我的主目錄中的我的點文件的git存儲庫。 每次我在沒有自己的repo的子目錄中使用git命令(例如git log)時,我都會得到點文件回購的日誌,例如,如何禁止git命令移動到父目錄?

/home/dimid  $ cd foo 
/home/dimid/foo $ git status 

... log of ~/.git 

不過,我想我點庫限制只能以點開頭的文件和目錄(如.vim),這樣,當我在~/foo~/foo/.git是不存在git log將輸出通常

fatal: Not a git repository (or any of the parent directories): .git 

即使父目錄~包含.git文件夾。

我想過別名git並添加一個異常,有沒有更優雅的方式?

+0

恐怕這很難獲得;如果不是不可能。 Git是用來檢查目錄是否是git倉庫的一部分;因爲你的主目錄是一個... –

+0

而不是搜索如何讓Git忽略子目錄,也許你應該尋找如何在源代碼管理中正確保存像.vimrc這樣的文件。 – tom

+0

@tom我很樂意聽到建議 – dimid

回答

3

我不知道這樣做的任何方式;因爲Git總是向上移動你的目錄樹,直到找到.git目錄。現在因爲你的/home目錄是一個git倉庫;所有子目錄將始終在您的/home文件夾中找到.git目錄。

我可以看到一個變通辦法,但它是不是很乾淨......

  • 在家裏創建一個子目錄(或其他地方);你將在那裏初始化你的git倉庫(比如「/ home/user/configfiles /」)
  • 現在創建你想要保存在你的git倉庫中的配置文件和你係統上的配置文件之間的硬鏈接(例如「ln〜/ .config ./「)(注需要使用硬鏈接;否則Git會唯一版本在符號鏈接所指向的路徑)

這樣,你的主目錄將不會是一個git倉庫了;並避免了這個問題...

+0

謝謝,但'〜'有一些子模塊(如'.vim/bundle'),所以我寧願不必動態跟蹤它們,並添加硬鏈接 – dimid

+0

我知道這不是最美麗的解決方案......但是你必須爲每個文件做'git add'嗎? –

+0

只需一次SM – dimid