亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 git2go 從遠程執行 git fetch && git merge

使用 git2go 從遠程執行 git fetch && git merge

Go
瀟瀟雨雨 2021-09-27 21:04:16
我正在使用 libgit2/git2go v0.22 并嘗試從遠程存儲庫中實現類似于“git pull”的東西。在這種情況下,工作目錄不會寫入任何內容:沒有更改、沒有提交、沒有推送。它只會從遠程拉取數據。使用 git2go 我可以克隆遠程存儲庫、加載/查找遠程源、獲取遠程、列出遠程標頭等。似乎唯一不起作用的步驟是合并。我的代碼看起來像這樣(我省略了錯誤處理):repo, err:= git.OpenRepository(sitesConfig.Sites[SiteName].Path)remote, err:= repo.LookupRemote("origin")err = remote.SetCallbacks(&rcbs)err = remote.Connect(git.ConnectDirectionFetch)err = remote.ConnectFetch()remote_master, err := repo.LookupReference("refs/remotes/origin/master")mergeRemoteHead, err := repo.AnnotatedCommitFromRef(remote_master)mergeHeads := make([]*git.AnnotatedCommit, 1)mergeHeads[0] = mergeRemoteHeaderr = repo.Merge(mergeHeads, nil, nil)repo.StateCleanup()運行此代碼時沒有出現錯誤,但工作目錄沒有更新。在同一目錄上使用“git pull”和“git fetch && git marge origin/master”工作正常。是不是缺少了什么?最后一次提交?
查看完整描述

1 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

您要求連接到遙控器兩次(err = remote.Connect(git.ConnectDirectionFetch)err = remote.ConnectFetch()),但您并沒有要求它做任何事情。與其嘗試連接兩次,不如使用多合一的 fetch 方法

remote.Fetch(nil, nil, nil)

連接、下載和更新遠程跟蹤分支。然后您可以檢查是否有更新和合并或執行任何您需要的操作。


查看完整回答
反對 回復 2021-09-27
  • 1 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號