我有一個文件,我認爲可能是在一個git回購。我目前在我的主目錄中。如何在不更改當前工作目錄的情況下獲取回購的頂級目錄?只有瞭解回購協議中的單個文件,才能獲得git回購的最高級別?
如果我在回購裏面,我可以運行獲取根目錄。
(~/code/dir1) $ git rev-parse --show-toplevel
實際上,我希望能夠使用文件直接找到git目錄的根目錄。
(~) $ find . -name "specific_file.py"
凡樹的重要的部分是:
~/code/dir1/.git
~/code/dir1/files/more_files/specific_file.py
是否有這樣做的git的方式,或者是通用的外殼操縱這樣做的最佳方式?
我知道我可以做:
(~) $ cd $(dirname $(find . -name "specific_file.py"))
(~/code/dir1/files/more_files) $ git rev-parse --show-toplevel
~/code/dir1
(~/code/dir1/files/more_files) $ cd -
如果我嘗試沒有被回購裏面我得到的消息:
Fatal '~/code/dir1/files/more_file/specific_file.py' is outside repository
如果我試圖和git的目錄設置爲進一步被向下樹:
git --git-dir=$(dirname $(find . -name "specific_file.py")) rev-parse --show-toplevel
它告訴我,我不是在一個git目錄中工作。
我也嘗試過使用工作樹,但這似乎並不是我之後直接在路徑上直接查找/.git目錄。
我不確定我是否理解需要做什麼。不會'find'顯示文件的完整路徑,從中可以明顯看出它是否位於Git倉庫中? –
你在哪個平臺上? – pneumatics
@TimBiegeleisen是的,因爲我知道我的機器上的回購結構,但似乎沒有一種簡單的方法來查找根路徑,以便從源代碼構建它時可以找到其他幫助程序腳本。我當然可以將路徑作爲參數,但是如果有一個簡單的解決方案內置於git中,我想避免這種情況。 –