簡體   English   中英

使用go get時,Travis CI構建中的默認Git master分支簽出

[英]Default Git master branch checkout in Travis CI build when using go get

我在嘗試Travis CI構建的首次嘗試時遇到了一些困難。

我使用Parse(.com)作為后端,然后在這里找到了使用Travis進行構建和部署的示例。 但是,在盡力將其設置好之后,我現在遇到了Google無法解決的問題。

我從Travis CI構建日志中收到此錯誤。

....
$ mkdir -p "$TRAVIS_BUILD_DIR/gosrc"
$ mkdir -p "$TRAVIS_BUILD_DIR/static"
$ curl -s https://www.parse.com/downloads/cloud_code/installer.sh | sudo /bin/bash
$ go get -v github.com/xxxxx/xxxxxxx
github.com/xxxxxx/xxxxxx (download)
cd /home/travis/build/xxxxx/xxxxx/gosrc/src/github.com/xxxxxx/xxxxxx; git checkout master

error: pathspec 'master' did not match any file(s) known to git.

package github.com/xxxxx/xxxxxx: exit status 1

The command "go get -v github.com/xxxxxx/xxxxxx" failed and exited with 1 during .
Your build has been stopped.

這是我的.travis.yml文件的安裝部分

install:
- mkdir -p "$TRAVIS_BUILD_DIR/gosrc"
- mkdir -p "$TRAVIS_BUILD_DIR/static"
- curl -s https://www.parse.com/downloads/cloud_code/installer.sh | sudo /bin/bash
- go get -v github.com/xxxxxx/xxxxxxx

我的問題是:您能否在執行go get {git repo}時指定應該結帳的分支? 因此它不是默認的master。 如果沒有 ,有沒有更好的方法呢?

注意:我的存儲庫中沒有master分支,因為我不使用它,所以在前一段時間將其刪除。 我需要添加一個才能正常工作嗎?

如果問題不清楚或缺少一些必要的信息,請告訴我。

感謝您的幫助!

簡短的答案是不,您不能使用go get指定分支或標記。 但是,如果檢查go工具來源,您會發現它在執行克隆時也沒有真正指定master 它只是克隆倉庫。 這可能確實是git / GitHub問題。

您可以打開一個終端並僅將該倉庫克隆到其他位置嗎? 它是否使您抱怨沒有master分支? 存儲庫有一個設置,該分支應將其設置為默認分支,並且即使您沒有分支,仍將其默認設置為master那么您將看到錯誤。 我通過在沒有master分支的情況下制作GitHub存儲庫來實現這一點。 我可以通過進入GitHub存儲庫設置並指定默認分支來修復它。

注意:如果您的本地存儲庫處於分離的頭部狀態,那么go get命令將指定master分支。 查看輸出,我認為這不是正在發生的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM