2016-09-15 52 views
11

什麼是我可以使用的shell命令,使用完整的目錄路徑,確定給定的目錄是否是git存儲庫?具體來說,我希望能夠做到這一點,而不必在目錄中,並且不必進入它。我也希望能夠用一個返回簡單的「true」或「false」的命令來做到這一點(很像rev-parse -is-inside-work-tree的做法),但這不是必需的。檢查目錄是否是git存儲庫(不必cd到它)

+3

'test -d「$ path/.git」' – Siguza

+2

還有'[[-d「$ PATH/.git」]] && <其他命令>' – hjpotter92

+0

您可以grep for .git文件夾?或者你可以進入它然後檢查然後cd回到當前的工作目錄? – J0B

回答

21

使用git -C <path> rev-parse。如果<path>的目錄是git存儲庫,則返回0,否則返回錯誤代碼。

+3

注意:這對於git倉庫的任何子目錄也會返回0。 – Siguza

+0

太棒了!謝謝!! – Ataraxia

2

系統中的任何目錄都可以是git工作副本。通過將環境變量設置爲指向實際的.git目錄和工作副本的根目錄,或者使用--git-dir--work-tree選項,您可以使用目錄,就像它包含.git子目錄一樣。有關更多詳細信息,請參閱git man page

0

我們也可以嘗試git status命令,如果輸出是這樣的:

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

然後,目錄不是一個Git倉庫。

相關問題