2013-02-28 49 views
2

是否可以通過編程方式找到包含子模塊的.git目錄的路徑?以編程方式獲取bash中的git目錄路徑(包括子模塊)

我想寫一個腳本,安裝一個git鉤子,但我找不到一個簡單的方法來找到項目的.git目錄。理想情況下,應包括以下情況:

  1. 在項目
  2. 在子模塊的子目錄內的項目
  3. 在項目
  4. 的子目錄中的子模塊的根目錄的根目錄項目

我可以手動完成所有這些,但我寧願不解析子模塊的.git文件。

編輯:我也會對python中的解決方案感興趣。

+0

howabout使用'找到'來搜索'.git'目錄? – 2013-02-28 21:42:42

+0

@Fredrik你怎麼知道有多少目錄上去?還有,如果有一個名稱完全相同的目錄? – 2013-02-28 21:44:16

+5

重複http://stackoverflow.com/questions/14073053/find-path-to-git-hooks-directory-on-the-shell – qqx 2013-02-28 21:55:33

回答

1

git rev-parse --git-dir似乎是你想要的。我只是一個子模塊進行了測試:

cd mymodule 
git rev-parse --git-dir # --> .git 
git submodule add ssh://.../path/to/mysubmodule 
cd mysubmodule 
git rev-parse --git-dir # --> /home/.../mymodule/.git/modules/mysubmodule 

這讓我很吃驚,因爲在mysubmodule一個.git,但它竟然是一個文件,其內容如下:

gitdir: ../.git/modules/mysubmodule 
2

This SO問題使用git rev-parse --show-toplevel找到頂層目錄。

+0

這不會給你的.git目錄 – 2013-03-01 01:25:16

+1

它是在那裏的'.git'目錄... – vonbrand 2013-03-01 01:29:24

+1

這不能通過測試3和4 – 2013-03-01 03:22:44

相關問題