2013-05-16 34 views
0

我正在研究一個簡單的打包工具,用於檢查某個內部版本字符串(從源代碼中提取)是否與git標記匹配。我們的目標是確保我的程序能夠在運行時顯示它的版本號,並且該數字將通過我的存儲庫中的標籤進行標識。以編程方式查找git存儲庫的當前狀態是否標記

基本上,我需要檢查兩件事情:

  • ,該庫具有在包裝時(空git diff)沒有未提交代碼。
  • 沒有提交信息標記後進行(git describe --tags回報預期的標記名稱)

,因爲它是被包含在一個腳本我明白我不應該使用git瓷命令,從今以後,我不應該分析git的差異輸出或者調用git描述。

我該怎麼做才能使用git plumbing命令?

回答

2

要確定工作副本是否乾淨(沒有未提交的更改),請使用git status --porcelain,其輸出「在Git版本中保持穩定,並且不管用戶配置如何」。 (詳見鏈接手冊頁。)

要查看當前簽出的版本是一樣的,你想要的標籤的一個,你可以使用git rev-parse:相同的哈希必須由git rev-parse HEAD和打印git rev-parse $TAGNAME^{}。參數是標籤的名稱,後面跟着一個插入符,然後是一個開啓和關閉的大括號;這是指被標記的提交,而不是標記本身(也是一個帶有散列的git對象);有關此表示法的更多信息,請參見the manpage for gitrevisions

相關問題