2017-06-01 62 views
0

我試圖理解爲什麼我運行我的bitbucket-pipelines.yml文件時,我得到了兩個與git標籤不同的結果。目前我的項目的標籤從1.0.0 - 1.0.25運行。 .yml文件看起來像這樣...Git/Bitbucket流水線 - 根據我推送的分支,標籤顯示的不同會是什麼?

pipelines: 
    branches: 
    diff-test: 
     - step: 
     script: 
      - export PREVIOUS_GIT_HASH=`git rev-list --tags --skip=2 --max-count=1` 
      - export PREVIOUS_GIT_TAG=`git describe ${PREVIOUS_GIT_HASH} --abbrev=0` 
      - export GIT_TAG=`git describe --tags --abbrev=0` 
      - echo ${PREVIOUS_GIT_TAG} ${GIT_TAG} 
    # A develop step/script happens here but it's irrelevant... 

    master: 
     - step: 
     script: 
     # set the most recent tag as an environment variable. 
      - export GIT_TAG=`git describe --tags --abbrev=0` 
      - zip -FSr ${BITBUCKET_REPO_SLUG}-${GIT_TAG}.zip ./ [email protected] 
      - curl -u ${BB_AUTH_STRING} -X POST "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form [email protected]"${BITBUCKET_REPO_SLUG}-${GIT_TAG}.zip" 

當我推到master時,附加到下載工件的標籤是正確的(1.0.25)。但是,當我推送到diff-test時,回顯出的標籤是1.0.141.0.15

在git文檔中,它代表describe,它表示--tags: Instead of using only the annotated tags, use any tag found in refs/tags namespace. This option enables matching a lightweight (non-annotated) tag.

我的問題是 - 是什麼導致標籤出現不同取決於我推到哪個分支?

回答

1

Git describe提供了有關特定提交的信息,其他所有內容(即標記)都與該提交相關。它不會報告該提交的祖先中不存在的標籤。由於分支具有不同的祖先,因此在不同分支中描述提交可能會產生不同的結果。

the documentation(重點煤礦):

該命令將查找最近的標記,是到達從提交

+0

謝謝。好的 - 這意味着它實際上表現得「正確」,只是不符合我的預期。所以,如果我理解這個權利,如果我將相同的技術應用到主分支,它將返回'1.0.24 1.0.25',因爲那些分支是相對的。 – aberkow

相關問題