首頁 > 後端開發 > Golang > 主體

無法使用 go-github 和 422 建立提交 - 更新不是快轉

PHPz
發布: 2024-02-09 17:12:19
轉載
732 人瀏覽過

无法使用 go-github 和 422 创建提交 - 更新不是快进

php小編小新在使用go-github時,遇到了一個問題:在建立提交時,出現了422錯誤,並且提示「更新不是快轉」。這個問題的具體原因是什麼呢?該如何解決呢?接下來,我們將為大家詳細解答。

問題內容

我使用以下函數簡單地使用 go-github 函式庫在分支中建立一個新提交

func ghapicreatecommit(ctx context.context, client *github.client, commitopts *commitoptions) error {
    // get the reference of the branch
    ref, _, err := client.git.getref(ctx, repoowner, commitopts.repo, "refs/heads/"+commitopts.branch)
    if err != nil {
        return err
    }
    commit, _, err := client.git.getcommit(ctx, repoowner, commitopts.repo, *ref.object.sha)
    if err != nil {
        return err
    }

    commit.message = github.string(commitopts.commitmessage)

    // create a new commit with the updated commit message
    newcommit, _, err := client.git.createcommit(ctx, repoowner, commitopts.repo, commit)
    if err != nil {
        return err
    }
    // attach the new commit to the reference
    ref.object.sha = newcommit.sha

    // update the branch reference to point to the new commit
    _, _, err = client.git.updateref(ctx, repoowner, commitopts.repo, ref, false)
    if err != nil {
        return err
    }

    return nil
}
登入後複製

此操作失敗:

PATCH https://api.github.com/repos/MyOrg/myrepo/git/refs/heads/the-branch-I-am-creating-the-new-commit-to: 422 Update is not a fast forward []
登入後複製

為什麼不快轉?它只是從現有分支/提交創建的新提交。

ps:我明確不想想要在提交時建立新檔案。

解決方法

func (s *gitservice) createcommit(ctx context.context, owner string, repo string, commit *commit) (*commit, *response, error)
登入後複製

參數commit用於指定新commit的一些信息,包括新commit的parents(請參閱實作)。

在您的程式碼中,新提交和舊提交具有相同的 parents,因此這不是快轉推送到分支。為了使其快速推送到分支,新提交的 parents 應指向舊提交。

我想以下更改會使其快轉:

+ commit.Parents = []*github.Commit{commit}
  newCommit, _, err := client.Git.CreateCommit(ctx, repoOwner, commitOpts.Repo, commit)
登入後複製

以上是無法使用 go-github 和 422 建立提交 - 更新不是快轉的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!