無法使用 go-github 和 422 建立提交 - 更新不是快轉
Feb 09, 2024 pm 05:12 PMphp小編小新在使用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中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)