我正在使用CMake來執行我的項目的非核心/源代碼構建,並且希望包含「git describe --tags - -dirty「作爲項目中的版本號(僅供參考)。但是,任何試圖告訴git代碼回購的地方的嘗試都會導致類似「致命的錯誤:不是git存儲庫(或任何父目錄):.git」。在當前目錄之外獲取GIT構建散列
有沒有一種方法可以指定git應該在當前工作目錄以外的位置查找回購站?
我正在使用CMake來執行我的項目的非核心/源代碼構建,並且希望包含「git describe --tags - -dirty「作爲項目中的版本號(僅供參考)。但是,任何試圖告訴git代碼回購的地方的嘗試都會導致類似「致命的錯誤:不是git存儲庫(或任何父目錄):.git」。在當前目錄之外獲取GIT構建散列
有沒有一種方法可以指定git應該在當前工作目錄以外的位置查找回購站?
或者你也可以從CMake的使用WORKING_DIRECTORY
-argument到execute_process()
。這是我做的:
execute_process(COMMAND "${GIT_EXECUTABLE}" describe --tags --dirty
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
RESULT_VARIABLE res
OUTPUT_VARIABLE out
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
然後我有在${out}
版本。
您可以使用git
和--git-dir
-agument。
你可以在命令行上指定--git-dir
,或者在環境中設置GIT_DIR
,或者路徑寫入名爲.git
文件:echo gitdir: /path/to/.git > .git
或作出的軟鏈接回購:ln -s /path/to/.git
。
(最後兩個選項可能是最不可取的,並只提到完整性。)